Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL Server: otorgar/revocar permisos
Aprender cómo Otorgar y revocar permisos Sintaxis y ejemplos en SQL Server (Transact-SQL).
describir
Puede otorgar y revocar permisos en varios objetos de base de datos en SQL Server. Veremos cómo otorgar y revocar permisos sobre tablas en SQL Server.
Otorgar permisos en la tabla
Puede otorgar a los usuarios varios permisos en las tablas. Estos permisos pueden ser cualquier combinación de SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR, REFERENCIAS, ALTERAR o TODO.
sintaxis
La sintaxis para otorgar permisos de tabla en SQL Server es:
GRANT privileges ON object TO user;
privilegio
Permiso para ceder. Puede ser cualquiera de los siguientes valores:
privilegio | describir |
---|---|
escoger | Capacidad para ejecutar sentencias SELECT en tablas. |
insertar | Capacidad para ejecutar instrucciones INSERT en tablas. |
renovar | Capacidad para ejecutar instrucciones UPDATE en tablas. |
Eliminar | Capacidad para ejecutar sentencias DELETE en tablas. |
Referirse a | Capacidad para crear tablas de referencia de restricciones. |
Cambio | Capacidad para ejecutar instrucciones ALTER TABLE para modificar las definiciones de la tabla. |
todo | ALL no otorga todos los permisos en la tabla. En cambio, otorga permisos ANSI-92, a saber, SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR y REFERENCIAS. |
objeto El nombre del objeto de la base de datos para el que otorga permisos. En el caso de permisos de tabla otorgados, este será el nombre de la tabla. usuario El nombre del usuario al que se le otorgarán estos permisos.
ejemplo
Veamos algunos ejemplos de cómo otorgar permisos de tabla en SQL Server.
Por ejemplo, si quisiera otorgar permisos SELECCIONAR, INSERTAR, ACTUALIZAR y ELIMINAR en una tabla llamada empleados al nombre de usuario smithj, ejecutaría la siguiente instrucción GRANT:
GRANT SELECT, INSERT, UPDATE, DELETE ON employees TO smithj;
También puede usar la palabra clave ALL para indicar que desea otorgar permisos ANSI-92 (es decir, SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR y REFERENCIAS) a un usuario llamado smithj. Por ejemplo:
GRANT ALL ON employees TO smithj;
Si solo desea otorgar a todos los usuarios acceso SELECT a la tabla de empleados, puede otorgar permisos a la función pública. Por ejemplo:
GRANT SELECT ON employees TO public;
Revocar privilegios en las tablas
Después de otorgar privilegios, es posible que deba revocar algunos o todos esos privilegios. Para hacer esto, puede ejecutar el comando deshacer. Puede deshacer cualquier combinación de SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR, REFERENCIAS, ALTERAR o TODO.
sintaxis
La sintaxis para revocar permisos en una tabla en SQL Server es:
REVOKE privileges ON object FROM user;
privilegio
Este es un privilegio asignado. Puede ser cualquiera de los siguientes valores:
privilegio | describir |
---|---|
escoger | Capacidad para ejecutar sentencias SELECT en tablas. |
insertar | Capacidad para ejecutar instrucciones INSERT en tablas. |
renovar | Capacidad para ejecutar instrucciones UPDATE en tablas. |
Eliminar | Capacidad para ejecutar sentencias DELETE en tablas. |
Referirse a | Capacidad para crear tablas de referencia de restricciones. |
Cambio | Capacidad para ejecutar instrucciones ALTER TABLE para modificar las definiciones de la tabla. |
todo | ALL no revoca todos los permisos en la tabla. En su lugar, revoca los permisos ANSI-92, a saber, SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR y REFERENCIAS. |
objeto El nombre del objeto de la base de datos cuyos permisos desea revocar. En el caso de revocar permisos sobre una tabla, este será el nombre de la tabla. usuario El nombre del usuario cuyos permisos serán revocados.
ejemplo
Veamos algunos ejemplos de cómo revocar permisos en una tabla en SQL Server.
Por ejemplo, si quisiera revocar el permiso de ELIMINAR de un usuario llamado anderson en una tabla llamada empleados, ejecutaría la siguiente instrucción REVOKE:
REVOKE DELETE ON employees FROM anderson;
Si desea revocar todos los privilegios ANSI-92 (es decir, SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR y REFERENCIAS) en una tabla de un usuario llamado anderson, puede usar la palabra clave ALL de la siguiente manera:
REVOKE ALL ON employees FROM anderson;
Si ha otorgado privilegios SELECT a los roles públicos en la tabla de empleados (es decir, todos los usuarios) y desea revocar esos privilegios, puede ejecutar la siguiente instrucción REVOKE:
REVOKE SELECT ON employees FROM public;