Uso de la declaración de concesión SQL
GRANT
Nombre
GRANT: otorga privilegios de acceso a un usuario, un grupo o todos los usuarios
GRANT privilegio [, . .. ] EN objeto [, ...]
A {PÚBLICO | GRUPO grupo | nombre de usuario }
Entrada
privilegio
Los permisos posibles incluyen:
SELECCIONAR
Acceder a todas las columnas/campos de la tabla/vista declarada.
INSERT
Inserta todas las columnas en la tabla declarada.
ACTUALIZAR
Actualizar todas las columnas/campos declarados.
BORRAR
Borra todas las filas de la tabla declarada.
RULE
Defina reglas en tablas/vistas (consulte la instrucción CREATE RULE).
TODOS
Concede todos los permisos.
objeto
El nombre del objeto al que se otorgan permisos. Los objetos posibles son:
tabla (tabla)
vista (vista)
secuencia (secuencia)
índice (índice)
p>PUBLIC
significa la abreviatura de todos los usuarios.
Grupo GROUP
El grupo al que se otorgarán permisos. En la versión actual, los grupos deben crearse explícitamente utilizando el siguiente método.
nombre de usuario
El nombre de usuario al que se le otorgarán permisos. PUBLIC es la abreviatura de todos los usuarios.
Salida
CAMBIAR
Si se realiza correctamente, devuelve esta información.
ERROR: ChangeAcl: clase "objeto" no encontrada
Si el objeto declarado no está disponible o es imposible otorgar permisos al grupo o usuario declarado.
Descripción
GRANT permite al creador de un objeto otorgar ciertos permisos específicos a un usuario o a un grupo o a todos los usuarios (PÚBLICO). Después de crear un objeto, aparte del creador, nadie más tiene permiso para acceder al objeto a menos que el creador otorgue el permiso (GRANT).
Una vez que un usuario tiene permisos sobre un objeto, puede utilizar ese privilegio. No es necesario otorgar (CONCEDER) permisos sobre el objeto al creador. El creador automáticamente tiene todos los permisos sobre el objeto, incluido el permiso para eliminarlo.
Nota
Actualmente, para otorgar permisos solo a unas pocas columnas en Postgres, debe crear una vista que contenga esas columnas y luego otorgar permisos a esas vistas.
Utilice el comando psql \z para obtener más información sobre los permisos de los objetos existentes:
Base de datos = lusitania
--------- -------------------------------------------------- ------- --
| Relación | Conceder/Revocar permisos |
--------------- ---- ---- -------------------------------------
| | {"= rw", "miriam=arwR", "grupo todos=rw"} |
--------------- ------- - -------------------------------------
Leyenda:
uname=arwR -- privilegios otorgados a un usuario
grupo gname=arwR -- privilegios otorgados a un GRUPO
=arwR -- privilegios otorgados a PUBLIC
r -- SELECCIONAR
w -- ACTUALIZAR/ELIMINAR
a -- INSERTAR
R -- REGLA
arwR -- TODOS
Consejos: Actualmente, para crear un GRUPO (grupo), tendrás que insertar datos manualmente en la tabla pg_group, como:
INSERT INTO pg_group VALUES (' todos');
CREAR USUARIO miriam EN GRUPO todos;
Consulte la declaración REVOKE para reasignar derechos de acceso.
Uso
A todos El permiso del usuario para insertar registros en la tabla de películas:
CONCEDER INSERTAR EN películas AL PÚBLICO;
Otorgar al usuario todos los permisos para operar los tipos de vista:
GRANT ALL ON tipos TO manuel;
Compatibilidad
SQL92
La sintaxis GRANT de SQL92 permite configurar permisos en una columna/campo individual en una tabla y permite establecer un permiso para otorgar a otros los mismos permisos.
CONCEDER privilegio [, ...]
ON objeto [ ( columna [, ...] ) ] [, ...]
A { PUBLIC | nombre de usuario [, ...] } [ CON GRANT OPTION ]
Estos campos son compatibles con la implementación de Postgres
, con las siguientes excepciones:
privilegio
SQL92 permite la declaración de privilegios adicionales:
SELECT
REFERENCIAS
Permite el uso de algunas o todas las columnas/campos en las restricciones de integración de una tabla declarada.
USO
Permite el uso de un dominio, juego de caracteres, colección o transacción. Si el objeto declarado no es una tabla/vista, el privilegio solo se puede declarar como USO.
objeto
[ TABLE ] tabla
SQL92 permite una palabra clave adicional sin función TABLE
CHARACTER SET
<. p>Se permiten juegos de caracteres declarados.COLLATION
Permite el uso de secuencias de recopilación declaradas.
TRADUCCIÓN
Permite el uso de conversiones de juegos de caracteres declarados.
DOMINIO
Permite el uso de dominios declarados.
CON OPCIÓN DE CONCESIÓN
Permite conceder los mismos permisos a otros.