Red de conocimiento informático - Problemas con los teléfonos móviles - Uso de la declaración de concesión SQL

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.