Comando de autorización de base de datos PostgreSQL

  Por lo general, uso bases de datos y rara vez tengo operaciones autorizadas, pero recientemente hubo una escena en la que necesito establecer qué bases de datos, tablas y secuencias solo pueden ser operadas por un determinado usuario. Permítanme compartir mi experiencia, uso la base de datos PostgreSQL.

Sintaxis del comando de empoderamiento

Los comandos de concesión en PostgreSQL son GRANT y REVOKE.

El comando GRANT se utiliza para otorgar ciertos permisos (como SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR, etc.) a un determinado usuario o grupo de usuarios sobre un objeto (como tablas, vistas, funciones, etc.).

gramática:

GRANT privilege [, ...] ON object TO {user | group | PUBLIC} [, ...] [WITH GRANT OPTION];

Entre ellos, privilegio es un tipo de permiso, objeto es un objeto, que puede ser una tabla, vista, función, etc., usuario o grupo es el usuario o grupo de usuarios al que se le otorga permiso y PUBLIC significa todos los usuarios.

Por ejemplo, el usuario autorizado zhangsan realiza operaciones SELECT e INSERT en la prueba de la tabla:

GRANT SELECT, INSERT ON test TO zhangsan;

El comando REVOKE se utiliza para revocar ciertos permisos de un usuario o grupo de usuarios sobre un objeto.

gramática:

REVOKE privilege [, ...] ON object FROM {user | group | PUBLIC} [, ...] [CASCADE | RESTRICT];

Entre ellos, los significados de privilegio, objeto, usuario o grupo y PUBLIC son los mismos que los del comando GRANT.

Por ejemplo, cancele el permiso SELECT del usuario zhangsan en la prueba de la tabla:

REVOKE SELECT ON test FROM zhangsan;

Cabe señalar que sólo los superusuarios tienen autoridad para otorgar y revocar permisos. 

combate

ver todos los usuarios

SELECCIONAR * DE pg_user;

Crear un usuario y establecer una contraseña

CREAR USUARIO zhangsan CON CONTRASEÑA '123456';

eliminar usuarios 

SOLTAR USUARIO zhangsan;

crear base de datos

CREAR BASE DE DATOS prueba;

eliminar base de datos

BOTAR BASE DE DATOS SI EXISTE prueba;

Eliminar los privilegios del usuario en la base de datos de "prueba" 

REVOCAR TODOS los privilegios EN LA "prueba" DE LA BASE DE DATOS DE zhangsan;

Dar permiso al usuario para operar la base de datos de "prueba" 

OTORGAR CONECTAR, CREAR, TEMPORAL EN LA "prueba" DE LA BASE DE DATOS A zhangsan;

Dar permiso al usuario para operar tablas en la base de datos de "prueba" 

OTORGAR SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR
EN TODAS LAS TABLAS DEL ESQUEMA PÚBLICO
A zhangsan;

Otorga al usuario el privilegio de operar en secuencias en la base de datos de "prueba"

Definiciones de permisos para secuencias

Se puede ver en el documento oficial que todos los permisos de la secuencia son rwU, correspondientes a SELECT, UPDATE, USAGE respectivamente;

Para secuencias, el privilegio SELECT permite el uso de la función currval

Para secuencias, el privilegio ACTUALIZAR permite el uso de las funciones nextval y setval

Para secuencias, el privilegio USAGE permite el uso de las funciones currval y nextval

Si necesita tener permiso para modificar la secuencia, puede otorgar TODOS directamente, de la siguiente manera 

OTORGAR SELECCIÓN, ACTUALIZAR Y USO EN TODAS LAS SECUENCIAS DEL ESQUEMA PÚBLICO A zhangsan;

Si solo usa la secuencia y no necesita modificarla, puede habilitar USO

CONCEDER EL USO EN TODAS LAS SECUENCIAS DEL ESQUEMA PÚBLICO A zhangsan; 

Supongo que te gusta

Origin blog.csdn.net/Eighteen_y/article/details/130742810
Recomendado
Clasificación