Introduktion til brugere
i enhver database skal vi oprette og have flere brugere, der kan få adgang til databasen. Hver bruger skal have visse adgangsrettigheder og skal være autoriseret, brugeren. Som standard har databaseserveren en standardbruger ved navn Postgres. Dette er superbrugeren, der har alle de rettigheder og privilegier, der er tildelt for alle databaser og tabeller. Han kan selv oprette nye brugere og tildele roller til dem, give og tilbagekalde tilladelser til andre brugere og så videre. Ofte skal superbrugeren eller databaseadministratoren vide om alle de brugere, der er til stede i den aktuelle databaseserver. I denne artikel lærer vi, hvordan vi kan liste alle de brugere, der er til stede i vores nuværende databaseserver. Lad os begynde med at studere, hvor de brugerrelaterede data gemmes og manipuleres i databasen.
brugere af postliste
nedenfor er de tre forskellige Listebrugere:
Start dit gratis Datalogikursus
Hadoop, datalogi, statistik & andre
1. Brugerdata i postgraduate
alle brugerrelaterede data gemmes i tabellen med navnet pg_user, som hører til skemaet med navnet pg_catalog. Denne tabel består af alle oplysninger såsom brugernavn, usesysid, usecreatedb, usesuper, userepl, usebypassrls, pass, valuntil og useconfig. Brugernavn, usesysid og adgangskode er det navn, id og adgangskode, der er gemt i brugerens MD5-hash-krypteringssystem. Samtidig er alle andre parametre de boolske parametre, der angiver, om brugeren har det privilegium, såsom usesuper, som angiver, om brugeren er en superbruger eller ej. Hvis ja, så indeholder den værdi som t, der står for sandt andet f, der betyder falsk. Lad os se, hvad alle de andre felter, der hentes, betyder praktisk.
- Usecreatedb: dette felt fortæller os, om den pågældende bruger kan oprette en ny database og har privilegiet at gøre det.
- Userepl: vi kan oprette replikationer af en enkelt tabel i mange andre databaser. Kun en bestemt bruger, der har det privilegium, kan gøre det. Derfor, hvis brugeren har privilegiet at oprette nye replikaer, er dette felt indstillet til sand.
- Usebypassrls: dette felt er kun indstillet til SAND, hvis brugeren har lov til at omgå RLS
vi vil først se, hvordan vi kan hente de brugerrelaterede oplysninger fra pg_user-tabellen. Vi bliver nødt til at opbygge vores forespørgsel på følgende måde-
kode:
SELECT * FROM pg_catalog.pg_user;
Output:
hvis du kun vil have listen over brugere, der indeholder dens navne, kan du affyre følgende forespørgsel.
Kode:
SELECT usename FROM pg_catalog.pg_user;
Output:
2. Brug af MetaCommands
Postgraduate giver os et vidunderligt værktøj ved navn pskl, hvor vi kan bruge metaCommands. MetaCommands er de korte færdige værktøjer, der er tilgængelige til brug, hvilket gør databaseadministratorens arbejde meget let. For at hente de brugerrelaterede data \ er du den metakommando, der kan bruges. Til dette skal du bruge kommandoprompten pskl i postgraduate. Lad os affyre denne kommando og se, at det er det resultat, vi får:
kode:
\du
Output:
- her er rollenavn brugerens navn. Liste over roller, dvs. attributter, der er de roller, som en bestemt bruger har for sig selv. Superbruger, Opret rolle, Opret DB, replikation, Bypass RLS er regler, der er tildelt superbrugeren, hvilket betyder, at superbrugeren kan oprette de nye roller og brugere, oprette nye databaser, udføre replikationer af de eksisterende objekter og omgå RLS.
- feltet”medlem af” Angiver, om brugeren er medlem af en gruppe. Databaseadministratoren kan oprette flere grupper og tilføje forskellige brugere til forskellige grupper, hvilket hjælper ham med at administrere brugerne korrekt, mens han gitter og tilbagekalder tilladelser. Hvis der er sådanne grupper, og den pågældende bruger tilhører en bestemt gruppe, vises navnet på den pågældende gruppe foran den pågældende bruger i feltet medlem af kolonnen.
- denne metaCommands affyrer internt en forespørgsel på pg_catalog.pg_user-tabellen for at hente brugeroplysningerne. Her får vi rollenavnet som brugerens navn, og en liste over rolleattributter hjælper os med at vide, hvilke privilegier der tildeles den pågældende bruger, mens et medlem af feltet fortæller os, om brugeren er medlem af en bestemt gruppe, hvis den er til stede. Forespørgslen, som internt får ild efter brug af \du metacommand, ligner noget på nedenstående forespørgselserklæring:
kode:
SELECT u.usename AS "Role name",
CASE WHEN u.usesuper AND u.usecreatedb THEN CAST('Create DB, Superuser' AS pg_catalog.text)
WHEN u.usesuper THEN CAST('Superuser' AS pg_catalog.text) WHEN u.usecreatedb THEN CAST('Create DB' AS pg_catalog.text)
ELSE CAST('' AS pg_catalog.text) END AS "Attributes"
FROM pg_catalog.pg_user u ORDER BY 1;
3. Brug af pg_shad
en yderligere måde at få listen over brugerne på er ved at bruge tabellen pg_shadou, der også indeholder oplysninger om brugerne i postgraduate-serveren. Denne tabel er gemt for bagudkompatibilitet for de versioner af postgraduate, der er tidligere til 8.1. Denne tabel gemmer de roller, der kan logge ind og markere rolcanlogin som 1 i tabellen pg_authid. Pg_user er den visning, der er oprettet på basistabellen pg_skadetabellen, som er tilgængelig offentligt. pg_shad er kun tilgængelig af superbrugeren. pg_user-visning indeholder adgangskodefeltet som tomt for at opretholde sikkerheden. Tabellen PG_ skygge indeholder felterne Brugernavn, usesysid, usecreatedb, usesuper, userepl, usebypassrls, adgangskode, valuntil og useconfig for alle brugere i databaseserveren.
kode:
SELECT * FROM pg_shadow;
Output:
select usesysid as "Id of User", usename as "User Name",
usesuper as "Whether User Is SuperUser", passwd as "Md5 Encrypted Password", valuntil as "Expiry of Password"
from pg_shadow order by usename;
Output:
konklusion
i databaseserveren kan vi hente brugerens oplysninger ved enten at hente posterne fra tabellen pg_user, der tilhører pg_catalog-skemaet. En anden måde er at bruge metakommandoen \du, som internt fyrer forespørgslen på selve pg_user-tabellen. Bortset fra dette er der endnu en tabel med navnet pg_shad, som gemmer oplysninger om brugerne og kan bruges til at liste alle brugere i postgraduate databaseserver. Bemærk, at omfanget af alle disse metoder er hele databaseserveren.
Anbefalede artikler
dette er en guide til postgraduate List brugere. Her diskuterer vi brugerdata, bruger metaCommand og bruger pg_shad med eksempler at implementere. Du kan også gennemgå vores andre relaterede artikler for at lære mere–
- Hent
- fremmed nøgle i Postgreskl
- Postgreskl tabel
- Postgreskl forespørgsler | introduktion | eksempler
- Postgreskl REGEKSP_MATCHES ()
- vejledning til