Introduksjon Til PostgreSQL List Users
i en hvilken som helst database må vi opprette og ha flere brukere som kan få tilgang til databasen. Hver bruker bør ha visse tilgangsrettigheter og bør være autorisert, brukeren. Som standard I PostgreSQL databaseserver har en standard bruker som heter Postgres. Dette er superbrukeren som har alle rettigheter og privilegier gitt for alle databaser og tabeller. Han kan selv opprette nye brukere og tildele roller til dem, gi og tilbakekalle tillatelser til andre brukere og så videre. Ofte må superbrukeren eller databaseadministratoren vite om alle brukerne som er tilstede i den nåværende databaseserveren. I denne artikkelen vil vi lære hvordan vi kan liste ut alle brukerne som er til stede i vår nåværende databaseserver. La oss begynne med å studere hvor brukerrelaterte data lagres og manipuleres i databasen.
PostgreSQL List Brukere
Nedenfor Er de tre Forskjellige Listebrukere:
Start Ditt Gratis Datavitenskapskurs
Hadoop, Datavitenskap, Statistikk & andre
1. Brukerdata I PostgreSQL
alle brukerrelaterte data lagres i tabellen pg_user, som tilhører skjemaet pg_catalog. Denne tabellen består av all informasjon som brukernavn, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil og useconfig. Brukernavn, usesysid og passwd er navn, id og passord som er lagret i md5 hash-krypteringssystemet til brukeren. Samtidig er alle andre parametere de boolske parametrene som angir om brukeren har denne rettigheten, for eksempel usesuper, som angir om brukeren er en superbruker eller ikke. Hvis ja, inneholder den verdi som t som står for true else f som betyr false. La oss se hva alle de andre feltene hentet betyr i praktisk.
- Usecreatedb: Dette feltet forteller oss om den aktuelle brukeren kan opprette en ny database og har tillatelse til å gjøre det.
- Userepl: Vi kan lage replikasjoner av et enkelt bord i mange andre databaser. Bare en bestemt bruker som har det privilegiet, kan gjøre det. Derfor, hvis brukeren har rett til å opprette nye replikaer, er dette feltet satt til true.
- Usebypassrls: dette feltet er satt til true bare hvis brukeren har lov til å omgå RLS
Vi vil først se hvordan vi kan hente brukerrelatert informasjon fra pg_user-tabellen. Vi må bygge søket vårt på følgende måte –
Kode:
SELECT * FROM pg_catalog.pg_user;
Utgang:
Hvis du bare vil få listen over brukere som inneholder navnene, kan du brann følgende spørring.
Kode:
SELECT usename FROM pg_catalog.pg_user;
Utgang:
2. Bruke MetaCommands
PostgreSQL gir Oss et fantastisk verktøy som heter psql, hvor vi kan bruke metaCommands. MetaCommands er de korte ferdige verktøy som er tilgjengelige for bruk, noe som gjør arbeidet til databaseadministrator veldig enkelt. For å hente de brukerrelaterte dataene \, er du meta-kommandoen som kan brukes. For dette må du bruke psql-ledeteksten I PostgreSQL. La oss brann denne kommandoen og se det er resultatet vi får:
Kode:
\du
Utgang:
- Her Er Rollenavn navnet på brukeren. Liste over roller, dvs. attributter som er rollene som en bestemt bruker har for seg selv. Superbruker, Opprett rolle, Opprett DB, Replikering, Bypass RLS er regler tildelt superbrukeren som betyr at superbrukeren kan opprette nye roller og brukere, opprette nye databaser, utføre replikeringer av eksisterende objekter og omgå RLS.
- «Medlem av» – feltet angir om brukeren er medlem av en gruppe. I PostgreSQL kan databaseadministratoren opprette flere grupper og legge til forskjellige brukere i forskjellige grupper, noe som hjelper ham med å administrere brukerne riktig mens du rister og tilbakekaller tillatelser. Hvis det finnes slike grupper, og den bestemte brukeren tilhører en bestemt gruppe, vises navnet på den gruppen foran brukeren i feltmedlem i kolonnen.
- denne metaCommands internt utløser en spørring i tabellen pg_catalog. pg_user for å hente brukerinformasjonen. Her får vi rollenavnet som navnet på brukeren, og en liste over rolleattributter hjelper oss å vite hvilke privilegier som er gitt til den aktuelle brukeren, mens et medlem av feltet forteller oss om brukeren er medlem av en bestemt gruppe hvis den finnes. Spørringen som internt blir brann etter bruk av \du metacommand, ligner noe på spørringserklæringen nedenfor:
Koden:
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. Bruke pg_shadow
En annen måte å få listen over brukerne er ved å bruke tabellen pg_shadow som også inneholder informasjon om brukerne I PostgreSQL-serveren. Denne tabellen beholdes for bakoverkompatibilitet for versjonene Av PostgreSQL som er tidligere enn 8.1. Denne tabellen lagrer rollene som kan logge inn og flagge rolcanlogin som 1 i pg_authid-tabellen. Pg_user er visningen opprettet på grunntabellen pg_shadow-tabellen, som er tilgjengelig offentlig. pg_shadow er kun tilgjengelig av superbrukeren. pg_user-visningen inneholder passordfeltet som tomt for å opprettholde sikkerheten. Pg_ shadow tabellen inneholder brukernavn, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil og useconfig felt for alle brukerne i databaseserveren.
Kode:
SELECT * FROM pg_shadow;
Utgang:
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;
Utgang:
Konklusjon
I PostgreSQL databaseserveren kan vi hente informasjonen til brukeren ved å enten hente postene fra tabellen pg_user som tilhører pg_catalog skjema. En annen måte er å bruke meta-kommandoen \du, som internt brenner spørringen på pg_user-tabellen selv. Annet enn dette er det en annen tabell som heter pg_shadow, som lagrer informasjon om brukerne og kan videre brukes til å liste alle brukerne I PostgreSQL-databaseserveren. Merk at omfanget av alle disse metodene er hele databaseserveren.
Anbefalte Artikler
Dette er en guide Til Brukere Av PostgreSQL-Listen. Her diskuterer vi brukerdata, bruker metaCommand og bruker pg_shadow med eksempler å implementere. Du kan også gå gjennom våre andre relaterte artikler for å lære mer–
- Postgresql HENTE
- Fremmednøkkel I PostgreSQL
- PostgreSQL Tabell
- PostgreSQL Spørringer | Introduksjon | Eksempler
- PostgreSQL REGEXP_MATCHES ()
- Guide TIL SQL REGEXP