PostgreSQL otorgar todos los privilegios en el esquema al usuario

Postgresql Otorgar Todos Los Privilegios En El Esquema Al Usuario



Las bases de datos son cruciales, y es el trabajo del administrador controlar qué diferentes roles pueden hacer los usuarios dentro de una base de datos determinada. Como parte de la autorización, el administrador puede definir entidades de usuario dentro de la base de datos y otorgar o revocar varios privilegios a los roles.

De esa forma, obtiene el control sobre quién puede acceder a una base de datos y qué privilegios tienen si pueden acceder a la base de datos. Por ejemplo, puede revocar la modificación de la base de datos u otorgar todos los privilegios sobre el esquema a un usuario o usuarios en una tabla determinada. Esta guía detalla cómo usar PostgreSQL para otorgar a un usuario todos los privilegios en el esquema a un usuario.







Cómo otorgar privilegios a usuarios en PostgreSQL

Cuando crea un nuevo rol, obtienen algunos privilegios de forma predeterminada. Sin embargo, la mayoría de los privilegios requieren que el administrador los otorgue a diferentes usuarios para regular el acceso y control de un esquema. Puede otorgar todos los privilegios a la vez o por separado.



Para este tutorial, vamos a crear un nuevo role nombrada linuxhint1 .



$ sudo -iu postgres
# crear rol linuxhint1 contraseña de inicio de sesión 'linuxhint';

 
Tenga en cuenta que estamos registrados como postgres, el rol predeterminado creado una vez que instala PostgreSQL.






Con el rol (usuario) creado, podemos listar los roles disponibles usando el siguiente comando:

# \ de

 
Los roles disponibles se mostrarán en formato de tabla.




postgres es el rol predeterminado y tiene la mayoría de los privilegios ya otorgados. Sin embargo, el nuevo papel, linuxhint1, no tiene privilegios hasta que se lo concedamos.

1. Concesión de un privilegio específico a un usuario

El rol creado no puede modificar el esquema a menos que usted lo permita. Verifiquemos esto creando primero una tabla como el rol predeterminado, postgres.

# crear nombres de tablas ( m_id int generado siempre como identidad, fname vachar ( 100 ) no nulo, nombre varchar ( 100 ) no nulo, edad int ) ;

 

Puede enumerar las relaciones disponibles, como se muestra a continuación:


Luego, abra un nuevo shell e inicie sesión en PostgreSQL usando el otro rol, linuxhint1, que creamos anteriormente usando el siguiente comando:

$ psql -EN linuxhint1 -d postgres

 

los -d especifica que el rol es usar la base de datos de Postgres.

Intenta leer el contenido de la tabla que creamos usando el SELECCIONE dominio.

# SELECCIONE * DE nombres;

 
devuelve un Permiso denegado error que impide al usuario acceder a la tabla.


En tal caso, debemos otorgar privilegios al rol para seleccionar/ver datos de la tabla dada usando la siguiente sintaxis:

# GRANT privilegio_nombre ON nombre_tabla TO nombre_rol;

 
Para otorgar los privilegios, utilice la sesión de Postgres.


Una vez concedido, intente volver a ejecutar el comando anterior.


Eso es todo. Logró otorgar el privilegio de selección al usuario específico.

2. Otorgamiento de todos los privilegios en Schema a un usuario

Hasta ahora, hemos logrado otorgar solo un privilegio en el esquema a un usuario. Bueno, eso no es suficiente. El usuario no puede modificar el esquema a menos que le otorgue todos los privilegios, como insertar y actualizar.

Hay diferentes maneras de lograr esto. Primero, vamos otorgar al usuario todos los privilegios a una tabla dada usando la siguiente sintaxis:

# OTORGAR TODO EN table_name TO role_name;

 

El usuario puede interactuar y modificar la tabla en particular. Sin embargo, no pueden funcionar con otras tablas en el esquema.

A otorgar todos los privilegios en todas las tablas en un esquema particular , utilice la siguiente sintaxis:

# CONCEDER TODO EN TODAS LAS TABLAS EN SCHEMA schema_name TO role_name;

 

Por último, puedes otorgar privilegios específicos, como insertar o seleccionar todas las tablas en el esquema a un rol determinado .

# GRANT privilegio_nombre EN TODAS LAS TABLAS DEL ESQUEMA esquema_nombre TO rol_nombre;

 

El rol puede seleccionar datos en todas las tablas del esquema especificado. Así es como define qué privilegios otorgar en el esquema a diferentes usuarios.

Conclusión

PostgreSQL es un poderoso DBMS. Tiene diferentes funciones, incluida la posibilidad de que el administrador otorgue varios privilegios a los usuarios. Otorgar todos los privilegios en el esquema a los usuarios significa permitir que el usuario modifique e interactúe con todas las tablas en el esquema especificado. Hemos visto cómo aplicar esa y otras formas de otorgar privilegios en el esquema a roles usando la instrucción GRANT en PostgreSQL.