Privilegios de subvenciones de PostgreSQL

Privilegios de subvenciones de PostgreSQL

En PostgreSQL, un usuario debe tener el Privilegio de inicio de sesión Para iniciar sesión en la base de datos. Sin embargo, se deben asignar permisos explícitos para realizar operaciones de bases de datos, incluida la selección de tablas, columnas y registros.

El Subvención postgresql La consulta le permite modificar los privilegios para los usuarios en objetos de base de datos como tablas, columnas, vistas, funciones, esquemas y más.

Este tutorial lo guiará a través del uso del Subvención postgresql Comando para modificar los privilegios para varios objetos de base de datos.

Uso básico

La sintaxis básica para el comando de subvención es:

Otorgar privilegio (s) en objetos al usuario

En la sintaxis anterior, puede especificar uno o más privilegios para otorgar en el objeto especificado al usuario.

Para establecer todos los privilegios en un objeto, puede usar toda la palabra clave.

Algunos de los privilegios que puede especificar para otorgar en un objeto incluyen:

  1. SELECCIONAR
  2. INSERTAR
  3. ACTUALIZAR
  4. BORRAR
  5. CREAR
  6. CONECTAR
  7. DESENCADENAR
  8. TRUNCAR
  9. Referencias
  10. EJECUTAR

A continuación, especifica el objeto de la base de datos y el usuario que otorga los privilegios establecidos.

Ejemplos de declaración de subvención

Veamos algunos ejemplos de cómo usar el Consulta de subvención sobre el Base de datos PostgreSQL.

Primero, cree un usuario local sin privilegios. Para hacer esto, asegúrese de iniciar sesión como usuario administrativo.

PSQL -U Postgres
Crear mods de rol de inicio de contraseña 'hola';

En el siguiente paso, cree una base de datos de muestra y una tabla que utilizaremos para ilustrar los privilegios de PostgreSQL.

Una consulta de muestra está a continuación:

Drop Base de datos si existe Privs;
Crear datos de base de datos;
\ c privs;
Crear Tabla Modify (ID Serial, UserName Varchar (255) No NULL, correo electrónico Varchar (255) No NULL, Cantidad int, clave principal (ID));

Finalmente, salga del usuario de Postgres e inicie sesión como el usuario que acabamos de crear anteriormente. En el ejemplo anterior, use el comando:

psql -u mods -d privs;

Ejemplo 1

Si intenta seleccionar valores de la tabla de modificar de la base de datos de prives, recibirá un error denegado de permiso.

Por ejemplo:

privs => select * de modificar;
Error: permiso denegado para modificar la tabla

Puede resolver este error otorgando todos los permisos al usuario de mods o agregando privilegios seleccionados.

Para hacer esto, inicie sesión como usuario de Postgres.

psql -u postgres -d privs;
Otorgar selección en modificar a mods;

Esto permite a los usuarios de mods seleccionar elementos de la tabla modificar de la base de datos de prives.

Una vez que ejecute la instrucción SELECT, debe obtener resultados como:

privs =# select * de modificar;
ID | nombre de usuario | correo electrónico | cantidad
----+----------+-------+--------
(0 filas)

Ejemplo 2

También puede asignar múltiples privilegios a la vez. Por ejemplo, para especificar Seleccionar, insertar, eliminar y truncar privilegios, usar el comando.

Otorgar seleccionar, insertar, eliminar, truncar en modificar a mods;

Ejemplo 3

Para otorgar todos los permisos a un usuario, establezca los privilegios en todos, como se muestra en el comando de ejemplo a continuación:

Otorgar todo en modificar a mods;

Ejemplo 4

En todos los ejemplos anteriores, solo asignamos privilegios a un usuario en una tabla específica. Para otorgar los privilegios a todas las tablas de un esquema especificado, podemos usar el comando:

Otorgar seleccionar, insertar, eliminar, truncar en todas las tablas en el esquema "privs" a mods;

Ejemplo 5

Tú también puedes CONCEDER un privilegio de conexión a un usuario específico a una base de datos específica. La consulta es:

Grant Connect en la base de datos privs a mods;

Para revocar todos los permisos otorgados a un usuario, use la consulta de Revoke como:

Revocar seleccionar, insertar, eliminar, truncar en modificar desde mods;

Clausura

Como esta guía te ha demostrado, Postgresql le permite modificar los privilegios a un usuario en los objetos de la base de datos utilizando el Grant y revocar comandos.