PostgreSQL Giv alle privilegier på skema til brugeren

Postgresql Giv Alle Privilegier Pa Skema Til Brugeren



Databaser er afgørende, og det er administratorens arbejde at kontrollere, hvilke forskellige roller brugerne kan udføre i en given database. Som en del af autorisationen kan administratoren definere brugerenheder i databasen og tildele eller tilbagekalde forskellige privilegier til rollerne.

På den måde opnår du kontrol over, hvem der kan få adgang til en database, og hvilke privilegier de har, hvis de kan få adgang til databasen. For eksempel kan du tilbagekalde databaseændringen eller give alle privilegier på skemaet til en bruger eller brugere i en given tabel. Denne vejledning beskriver, hvordan man bruger PostgreSQL til at give en bruger alle privilegier på skemaet til en bruger.







Sådan giver du privilegier til brugere på PostgreSQL

Når du opretter en ny rolle, får de nogle privilegier som standard. De fleste privilegier kræver dog, at administratoren giver dem til forskellige brugere for at regulere adgangen til og kontrollen af ​​et skema. Du kan give alle privilegier på én gang eller separat.



Til denne vejledning, lad os oprette en ny rolle som hedder linuxhint1 .



$ sudo -iu postgres
# create role linuxhint1 login-adgangskode 'linuxhint';


Bemærk at vi er logget ind som postgres, standardrollen oprettet, når du installerer PostgreSQL.






Med rollen (brugeren) oprettet, kan vi liste de tilgængelige roller ved hjælp af følgende kommando:

# \ fra


De tilgængelige roller vil blive vist i et tabelformat.




Postgres er standardrollen og har de fleste privilegier allerede givet. Men den nye rolle, linuxhint1, har ingen privilegier, før vi giver det.

1. Tildeling af et specifikt privilegium til en bruger

Den oprettede rolle kan ikke ændre skemaet, medmindre du tillader det. Lad os bekræfte dette ved først at oprette en tabel som standardrolle, postgres.

# oprette tabelnavne ( m_id int genereres altid som identitet, fnavn vachar ( 100 ) ikke null, lname varchar ( 100 ) ikke null, alder int ) ;



Du kan liste de tilgængelige relationer, som vist nedenfor:


Åbn derefter en ny shell og log ind på PostgreSQL ved hjælp af den anden rolle, linuxhint1, som vi oprettede tidligere ved hjælp af følgende kommando:

$ psql -I linuxhint1 -d postgres



Det -d specificerer, at rollen er at bruge Postgres-databasen.

Prøv at læse indholdet af tabellen, som vi oprettede ved hjælp af VÆLG kommando.

# VÆLG * FRA navne;


Det returnerer en adgang nægtet fejl, der forhindrer brugeren i at få adgang til bordet.


I et sådant tilfælde er vi nødt til at give rollerettighederne til at vælge/se data fra den givne tabel ved hjælp af følgende syntaks:

# GRANT privilegienavn PÅ tabelnavn TIL rollenavn;


Brug Postgres-sessionen for at tildele privilegier.


Når det er givet, prøv at køre den forrige kommando igen.


Det er det. Det lykkedes dig at tildele valgprivilegiet til den specifikke bruger.

2. Tildeling af alle privilegier på skema til en bruger

Indtil videre har vi kun formået at give en bruger et privilegium på skemaet. Nå, det er ikke nok. Brugeren kan ikke ændre skemaet, medmindre du giver det alle privilegier, såsom indsættelse og opdatering.

Der er forskellige måder at opnå dette på. Først, lad os give brugeren alle rettigheder til en given tabel ved hjælp af følgende syntaks:

# GIV ALLE PÅ tabelnavn TIL rollenavn;



Brugeren kan interagere med og ændre den pågældende tabel. De kan dog ikke arbejde med andre tabeller i skemaet.

Til give alle privilegier på alle tabellerne i et bestemt skema , brug følgende syntaks:

# GIV ALLE PÅ ALLE TABELLER I SCHEMA skemanavn TIL rollenavn;



Endelig kan du give specifikke privilegier, såsom at indsætte eller vælge alle tabeller på skemaet til en given rolle .

# TILDEL privilegienavn PÅ ALLE TABELLER I SKEMA skemanavn TIL rollenavn;



Rollen kan vælge data i alle tabeller i det angivne skema. Det er sådan, du definerer, hvilke privilegier, der skal tildeles på skemaet til forskellige brugere.

Konklusion

PostgreSQL er et kraftfuldt DBMS. Det har forskellige funktioner, herunder at tillade administratoren at give forskellige privilegier til brugere. Tildeling af alle privilegier på skemaet til brugere betyder, at brugeren kan ændre og interagere med alle tabeller i det angivne skema. Vi har set, hvordan man anvender det og andre måder at give privilegier på skemaet til roller ved hjælp af GRANT-sætningen i PostgreSQL.