PostgreSQL Concedeix tots els privilegis de l'esquema a l'usuari

Postgresql Concedeix Tots Els Privilegis De L Esquema A L Usuari



Les bases de dades són crucials i és feina de l'administrador controlar quines funcions poden fer els usuaris dins d'una base de dades determinada. Com a part de l'autorització, l'administrador pot definir entitats d'usuari dins de la base de dades i concedir o revocar diversos privilegis als rols.

D'aquesta manera, obtindreu el control sobre qui pot accedir a una base de dades i quins privilegis tenen si poden accedir a la base de dades. Per exemple, podeu revocar la modificació de la base de dades o concedir tots els privilegis de l'esquema a un usuari o usuaris d'una taula determinada. Aquesta guia detalla com utilitzar PostgreSQL per concedir a un usuari tots els privilegis de l'esquema a un usuari.







Com concedir privilegis als usuaris a PostgreSQL

Quan creeu un rol nou, obtenen alguns privilegis de manera predeterminada. Tanmateix, la majoria dels privilegis requereixen que l'administrador els concedeixi a diferents usuaris per regular l'accés i el control d'un esquema. Podeu concedir tots els privilegis alhora o per separat.



Per a aquest tutorial, creem un nou paper nomenat linuxhint1 .



$ sudo -iu postgres
# crea la contrasenya d'inici de sessió de rol linuxhint1 'linuxhint';


Tingueu en compte que hem iniciat sessió com a postgres, el rol predeterminat creat un cop instal·leu PostgreSQL.






Amb el rol (usuari) creat, podem llistar els rols disponibles mitjançant l'ordre següent:

# \ des de


Els rols disponibles es mostraran en format de taula.




Postgres és el rol predeterminat i ja té la majoria de privilegis concedits. Tanmateix, el nou paper, linuxhint1, no té privilegis fins que no els atorguem.

1. Concedir un privilegi específic a un usuari

El rol creat no pot modificar l'esquema tret que ho permeteu. Comprovem-ho primer creant una taula com a funció predeterminada, postgres.

# crear noms de taules ( m_id int generat sempre com identitat, fname vachar ( 100 ) no nul, lname varchar ( 100 ) no nul, edat int ) ;



Podeu llistar les relacions disponibles, tal com es mostra a continuació:


A continuació, obriu un nou shell i inicieu sessió a PostgreSQL utilitzant l'altre rol, linuxhint1, que vam crear anteriorment amb l'ordre següent:

$ psql -IN linuxhint1 -d postgres



El -d especifica que la funció és utilitzar la base de dades Postgres.

Intenta llegir el contingut de la taula que hem creat amb el SELECCIONA comandament.

# SELECCIONA * DE noms;


Torna a permís denegat error que impedeix que l'usuari accedeixi a la taula.


En aquest cas, hem de concedir els privilegis de rol per seleccionar/veure dades de la taula donada utilitzant la sintaxi següent:

# GRANT nom_privilegi ON nom_taula TO nom_rol;


Per concedir els privilegis, utilitzeu la sessió de Postgres.


Un cop concedit, proveu de tornar a executar l'ordre anterior.


Això és. Heu aconseguit concedir el privilegi de selecció a l'usuari específic.

2. Concedir tots els privilegis de l'esquema a un usuari

Fins ara, hem aconseguit concedir només un privilegi a l'esquema a un usuari. Bé, això no és suficient. L'usuari no pot modificar l'esquema tret que li concedeixis tots els privilegis, com ara inserir i actualitzar.

Hi ha diferents maneres d'aconseguir-ho. Primer, anem concedir a l'usuari tots els privilegis d'una taula determinada utilitzant la sintaxi següent:

# GRANT ALL ON nom_taula A nom_rol;



L'usuari pot interactuar i modificar la taula en particular. Tanmateix, no poden funcionar amb altres taules de l'esquema.

A concedir tots els privilegis a totes les taules d'un esquema particular , utilitzeu la sintaxi següent:

# GARANT TOT A TOTES LES TAULES DE L'ESQUEMA nom_esquema A nom_rol;



Finalment, pots concedir privilegis específics, com ara inserir o seleccionar totes les taules de l'esquema a un rol determinat .

# GRANT nom_privilegi A TOTES LES TAULES DE L'ESQUEMA nom_esquema A nom_rol;



El rol pot seleccionar dades a totes les taules de l'esquema especificat. Així és com es defineixen quins privilegis concedir a l'esquema als diferents usuaris.

Conclusió

PostgreSQL és un SGBD potent. Té diferents característiques, inclosa permetre a l'administrador concedir diversos privilegis als usuaris. Atorgar tots els privilegis de l'esquema als usuaris significa permetre a l'usuari modificar i interactuar amb totes les taules de l'esquema especificat. Hem vist com aplicar aquesta i altres maneres d'atorgar privilegis a l'esquema als rols mitjançant la instrucció GRANT a PostgreSQL.