PostgreSQL Gi alle privilegier på skjema til brukeren

Postgresql Gi Alle Privilegier Pa Skjema Til Brukeren



Databaser er avgjørende, og det er administratorens arbeid å kontrollere hvilke ulike roller brukerne kan gjøre innenfor en gitt database. Som en del av autorisasjonen kan administratoren definere brukerenheter i databasen og gi eller tilbakekalle ulike privilegier til rollene.

På den måten oppnår du kontroll over hvem som kan få tilgang til en database og hvilke privilegier de har hvis de får tilgang til databasen. Du kan for eksempel tilbakekalle databaseendringen eller gi alle rettigheter på skjemaet til en bruker eller brukere i en gitt tabell. Denne veiledningen beskriver hvordan du bruker PostgreSQL for å gi en bruker alle privilegier på skjemaet til en bruker.







Hvordan gi privilegier til brukere på PostgreSQL

Når du oppretter en ny rolle, får de noen privilegier som standard. De fleste privilegier krever imidlertid at administratoren gir dem til forskjellige brukere for å regulere tilgang og kontroll av et skjema. Du kan gi alle privilegiene samtidig eller separat.



For denne opplæringen, la oss lage en ny rolle navngitt linuxhint1 .



$ sudo -iu postgres
# create role linuxhint1 påloggingspassord ‘linuxhint’;


Merk at vi er pålogget som postgres, standardrollen opprettet når du installerer PostgreSQL.






Med rollen (brukeren) opprettet, kan vi liste de tilgjengelige rollene ved å bruke følgende kommando:

# \ fra


De tilgjengelige rollene vil vises i et tabellformat.




Postgres er standardrollen og har de fleste privilegier allerede gitt. Men den nye rollen, linuxhint1, har ingen privilegier før vi gir det.

1. Tildeling av et spesifikt privilegium til en bruker

Den opprettede rollen kan ikke endre skjemaet med mindre du tillater det. La oss bekrefte dette ved først å lage en tabell som standardrolle, postgres.

# lage tabellnavn ( m_id int generert alltid som identitet, fname vachar ( 100 ) ikke null, navnet varchar ( 100 ) ikke null, alder int ) ;



Du kan liste de tilgjengelige relasjonene, som vist nedenfor:


Deretter åpner du et nytt skall og logger på PostgreSQL med den andre rollen, linuxhint1, som vi opprettet tidligere ved å bruke følgende kommando:

$ psql -I linuxhint1 -d postgres



De -d spesifiserer at rollen er å bruke Postgres-databasen.

Prøv å lese innholdet i tabellen som vi laget ved hjelp av Å VELGE kommando.

# Å VELGE * FRA navn;


Den returnerer en tillatelse avslått feil som hindrer brukeren i å få tilgang til tabellen.


I et slikt tilfelle må vi gi rolleprivilegier for å velge/vise data fra den gitte tabellen ved å bruke følgende syntaks:

# GRANT privilegienavn PÅ tabellnavn TIL rollenavn;


For å gi privilegiene, bruk Postgres-økten.


Når det er gitt, prøv å kjøre forrige kommando på nytt.


Det er det. Du klarte å gi valgrettigheten til den spesifikke brukeren.

2. Tildeling av alle rettigheter på skjema til en bruker

Så langt har vi klart å gi bare ett privilegium på skjemaet til en bruker. Vel, det er ikke nok. Brukeren kan ikke endre skjemaet med mindre du gir det alle privilegier, for eksempel å sette inn og oppdatere.

Det er forskjellige måter å oppnå dette på. Først, la oss gi brukeren alle rettighetene til en gitt tabell ved å bruke følgende syntaks:

# GIL ALLE PÅ tabellnavn TIL rollenavn;



Brukeren kan samhandle med og endre den aktuelle tabellen. De kan imidlertid ikke fungere med andre tabeller i skjemaet.

Til gi alle privilegier på alle tabellene i et bestemt skjema , bruk følgende syntaks:

# GI ALLE PÅ ALLE TABELLER I SCHEMA schema_name TO role_name;



Til slutt kan du gi spesifikke rettigheter, for eksempel å sette inn eller velge alle tabeller på skjemaet til en gitt rolle .

# GIR privilegienavn PÅ ALLE TABELLER I SKEMA skjemanavn TIL rollenavn;



Rollen kan velge data i alle tabeller i det angitte skjemaet. Det er slik du definerer hvilke privilegier som skal gis på skjemaet til forskjellige brukere.

Konklusjon

PostgreSQL er et kraftig DBMS. Den har forskjellige funksjoner, inkludert å la administratoren gi ulike privilegier til brukere. Å gi alle privilegier på skjemaet til brukere betyr å la brukeren endre og samhandle med alle tabeller i det angitte skjemaet. Vi har sett hvordan du kan bruke det og andre måter å gi privilegier på skjemaet til roller ved å bruke GRANT-setningen i PostgreSQL.