PostgreSQL lista användare

PostgreSQL lista användare

PostgreSQL List Users

introduktion till PostgreSQL List Users

i vilken databas som helst måste vi skapa och ha flera användare som kan komma åt databasen. Varje användare bör ha vissa behörigheter och bör godkännas, användaren. Som standard i PostgreSQL databasserver har en standardanvändare som heter Postgres. Det här är superanvändaren som har alla rättigheter och privilegier som beviljas för alla databaser och tabeller. Han kan själv skapa nya användare och tilldela roller till dem, bevilja och återkalla behörigheter till andra användare och så vidare. Ofta behöver superanvändaren eller databasadministratören veta om alla användare som finns i den aktuella databasservern. I den här artikeln lär vi oss hur vi kan lista alla användare som finns i vår nuvarande databasserver. Låt oss börja med att studera var användarrelaterade data lagras och manipuleras i databasen.

PostgreSQL Listanvändare

nedan är de tre olika Listanvändarna:

starta din gratis Datavetenskapskurs

Hadoop, datavetenskap, statistik & Övrigt

1. Användardata i PostgreSQL

all användarrelaterad data lagras i tabellen med namnet pg_user, som tillhör schemat med namnet pg_catalog. Denna tabell består av all information som användarnamn, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil och useconfig. Användarnamn, usesysid och passwd är namnet, id och lösenord som lagras i användarens md5-hashkrypteringssystem. Samtidigt är alla andra parametrar de booleska parametrarna som anger om användaren har det privilegiet, till exempel usesuper, som anger om den användaren är en superanvändare eller inte. Om ja, innehåller det värde som t som står för true else f som betyder false. Låt oss se vad alla andra fält som hämtas betyder i praktiken.

  • Usecreatedb: det här fältet berättar om den specifika användaren kan skapa en ny databas och har privilegiet att göra det.
  • Userepl: vi kan skapa replikationer av en enda tabell i många andra databaser. Endast en specifik användare som har det privilegiet kan göra det. Därför, om användaren har behörighet att skapa nya repliker, är detta fält inställt på true.
  • Usebypassrls: detta fält är inställt på true endast om användaren får kringgå RLS

vi kommer först att se hur vi kan hämta användarrelaterad information från pg_user-tabellen. Vi måste bygga vår fråga på följande sätt-

kod:

SELECT * FROM pg_catalog.pg_user;

utgång:

 PostgreSQL lista Användare - 1

PostgreSQL lista Användare - 1

om du bara vill få listan över användare som innehåller dess namn kan du avfyra följande fråga.

Kod:

SELECT usename FROM pg_catalog.pg_user;

Utgång:

PostgreSQL Lista Användare - 2

PostgreSQL Lista Användare - 2

2. Använda MetaCommands

PostgreSQL ger oss ett underbart verktyg som heter psql, där vi kan använda metaCommands. Metakommandon är de korta färdiga verktygen som är tillgängliga att använda, vilket gör databasadministratörens arbete mycket enkelt. För att hämta användarrelaterade data\, du är meta-kommandot som kan användas. För detta måste du använda PSQL-kommandotolken i PostgreSQL. Låt oss avfyra detta kommando och se det är resultatet vi får:

kod:

\du

utgång:

PostgreSQL lista användare - 3

PostgreSQL lista användare - 3
  • här är Rollnamnet användarens namn. Lista över Roller, dvs. attribut som är de roller som en viss användare har för sig själv. Superanvändare, skapa Roll, skapa DB, replikering, Bypass RLS är regler som tilldelats superanvändaren som innebär att superanvändaren kan skapa nya roller och användare, skapa nya databaser, utföra replikationer av befintliga objekt och kringgå RLS.
  • fältet”medlem i” Anger om användaren är medlem i någon grupp. I PostgreSQL kan databasadministratören skapa flera grupper och lägga till olika användare i olika grupper, vilket hjälper honom att hantera användarna ordentligt medan han gallrar och återkallar behörigheter. Om det finns några sådana grupper och den specifika användaren tillhör en viss grupp, visas namnet på den gruppen framför den användaren i fältet medlem i kolumnen.
  • denna metakommandon internt avfyrar en fråga i tabellen pg_catalog.pg_user för att hämta användarinformationen. Här får vi rollnamnet som användarens namn och en lista med rollattribut hjälper oss att veta vilka privilegier som beviljas den specifika användaren medan en medlem i fältet berättar om användaren är medlem i en viss grupp om den finns. Frågan som internt får eld efter att ha använt \du metacommand liknar något av nedanstående frågeställning:

kod:

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. Använda pg_shadow

ytterligare ett sätt att få listan över användarna är att använda tabellen pg_shadow som också innehåller information om användarna i PostgreSQL-servern. Denna tabell sparas för bakåtkompatibilitet för versionerna av PostgreSQL som är tidigare till 8.1. Den här tabellen lagrar de roller som kan logga in och flagga rolcanlogin som 1 i tabellen pg_authid. Pg_user är den vy som skapas på bastabellen pg_shadow-tabellen, som är tillgänglig offentligt. pg_shadow är endast tillgänglig av superanvändaren. pg_user-vyn innehåller lösenordsfältet som tomt för att upprätthålla säkerheten. Tabellen PG_ shadow innehåller fälten användarnamn, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil och useconfig för alla användare i databasservern.

kod:

SELECT * FROM pg_shadow;

utgång:

pg_shadow

pg_shadow

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;

utgång:

pg_shadow

pg_shadow

slutsats

i PostgreSQL-databasservern kan vi hämta användarens information genom att antingen hämta posterna från tabellen pg_user som tillhör pg_catalog-schemat. Ett annat sätt är att använda meta-kommandot \du, som internt avfyrar frågan på pg_user-tabellen själv. Utöver detta finns det ytterligare en tabell med namnet pg_shadow, som lagrar information om användarna och kan vidare användas för att lista alla användare i PostgreSQL-databasservern. Observera att omfattningen av alla dessa metoder är hela databasservern.

Rekommenderade artiklar

Detta är en guide till PostgreSQL lista användare. Här diskuterar vi användardata, user metaCommand och user pg_shadow med exempel att implementera. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer–

  1. PostgreSQL hämta
  2. främmande nyckel i PostgreSQL
  3. PostgreSQL tabell
  4. PostgreSQL frågor / introduktion / exempel
  5. PostgreSQL REGEXP_MATCHES ()
  6. Guide till SQL REGEXP
0 aktier

Lämna ett svar

Din e-postadress kommer inte publiceras.

Previous post Tropisk Homesteading: hur man skördar kokosnöt för färskt vatten och kött
Next post Bio-aerial Locomotion 2011