Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Deniega permisos en un servidor.
Convenciones de sintaxis de Transact-SQL
Sintaxis
DENY permission [ ,...n ]
TO <grantee_principal> [ ,...n ]
[ CASCADE ]
[ AS <grantor_principal> ]
<grantee_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
<grantor_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
Argumentos
permission
Especifica un permiso que se puede denegar en un servidor. Para obtener una lista de permisos, vea la sección Comentarios que se muestra posteriormente en este tema.
CASCADE
Indica que el permiso se deniega para la entidad de seguridad especificada y para el resto de entidades de seguridad a las que ésta concedió el permiso. Obligatorio cuando el principal tiene el permiso con GRANT OPTION.
PARA <server_principal>
Especifica la entidad de seguridad de la que se va a denegar el permiso.
COMO <grantor_principal>
Especifica la entidad de seguridad de la que la entidad de seguridad que ejecuta esta consulta deriva su derecho de denegar el permiso.
Use la cláusula AS de la entidad de seguridad para indicar que la entidad de seguridad registrada como el denegador del permiso debe ser una entidad de seguridad distinta de la persona que ejecuta la instrucción. Por ejemplo, suponga que la usuaria María tiene el principal_id 12 y el usuario Raúl tiene el principal_id 15. Mary ejecuta DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Ahora la tabla sys.database_permissions indicará que el grantor_principal_id de la instrucción deny era 15 (Raúl) aunque el usuario 13 (Mary) ejecutara realmente la instrucción.
El uso de AS en esta instrucción no implica la capacidad de suplantar a otro usuario.
SQL_Server_login
Especifica un inicio de sesión de SQL Server.
SQL_Server_login_mapped_to_Windows_login
Especifica un inicio de sesión de SQL Server asignado a un inicio de sesión de Windows.
SQL_Server_login_mapped_to_Windows_group
Especifica un inicio de sesión de SQL Server asignado a un grupo de Windows.
SQL_Server_login_mapped_to_certificate
Especifica un inicio de sesión de SQL Server asignado a un certificado.
SQL_Server_login_mapped_to_asymmetric_key
Especifica un inicio de sesión de SQL Server asignado a una clave asimétrica.
server_role
Especifica un rol de servidor.
Observaciones
Los permisos del ámbito del servidor solamente pueden denegarse si la base de datos actual es maestra.
Puede ver información acerca de los permisos del servidor en la vista de catálogo sys.server_permissions, mientras que la información acerca de las entidades de seguridad de servidor puede verse en la vista de catálogo sys.server_principals. Encontrará información sobre la pertenencia de roles de servidor en la vista de catálogo sys.server_role_members.
Un servidor ocupa el nivel más alto en la jerarquía de permisos. En la siguiente tabla se muestran los permisos más específicos y limitados que pueden denegarse en un servidor.
| Permiso de servidor | Implícito en el permiso de servidor |
|---|---|
| ADMINISTRACIÓN DE OPERACIONES MASIVAS | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER AVAILABILITY GROUP Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual). |
SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER CONEXIÓN | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER CREDENTIAL | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER DATABASE | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER ENDPOINT | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER EVENT NOTIFICATION | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER EVENT SESSION | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER SERVIDOR VINCULADO | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER LOGIN | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER SERVER AUDIT | SERVIDOR DE CONTROL |
| ALTERAR CUALQUIER SERVER ROLE Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual). |
SERVIDOR DE CONTROL |
| MODIFICAR RECURSOS | SERVIDOR DE CONTROL |
| ALTERAR ESTADO DEL SERVIDOR | SERVIDOR DE CONTROL |
| MODIFICAR CONFIGURACIONES | SERVIDOR DE CONTROL |
| ALTER TRACE | SERVIDOR DE CONTROL |
| AUTENTICAR SERVIDOR | SERVIDOR DE CONTROL |
| CONECTAR CUALQUIERA DATABASE Se aplica a: SQL Server (SQL Server 2014 (12.x) a través de la versión actual). |
SERVIDOR DE CONTROL |
| Conectar a SQL | SERVIDOR DE CONTROL |
| SERVIDOR DE CONTROL | SERVIDOR DE CONTROL |
| CREA CUALQUIERA DATABASE | ALTERAR CUALQUIER DATABASE |
| CREATE AVAILABILITY GROUP Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual). |
ALTERAR CUALQUIER AVAILABILITY GROUP |
| CREAR DDL EVENT NOTIFICATION | ALTERAR CUALQUIER EVENT NOTIFICATION |
| CREATE ENDPOINT | ALTERAR CUALQUIER ENDPOINT |
| CREATE SERVER ROLE Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual). |
ALTERAR CUALQUIER SERVER ROLE |
| CREAR TRACE EVENT NOTIFICATION | ALTERAR CUALQUIER EVENT NOTIFICATION |
| ACCESO EXTERNO ASSEMBLY | SERVIDOR DE CONTROL |
| SUPLANTAR A CUALQUIERA LOGIN Se aplica a: SQL Server (SQL Server 2014 (12.x) a través de la versión actual). |
SERVIDOR DE CONTROL |
| SELECCIONAR TODOS LOS USER ELEMENTOS PROTEGIBLES Se aplica a: SQL Server (SQL Server 2014 (12.x) a través de la versión actual). |
SERVIDOR DE CONTROL |
| SHUTDOWN | SERVIDOR DE CONTROL |
| INSEGURO ASSEMBLY | SERVIDOR DE CONTROL |
| VIEW CUALQUIERA DATABASE | VIEW CUALQUIER DEFINICIÓN |
| VIEW CUALQUIER DEFINICIÓN | SERVIDOR DE CONTROL |
| VIEW ESTADO DEL SERVIDOR | ALTERAR ESTADO DEL SERVIDOR |
Los tres permisos de servidor siguientes se agregaron en SQL Server 2014 (12.x).
CONECTA CUALQUIER DATABASE Permiso
Concede CONNECT ANY DATABASE a un inicio de sesión que debe conectarse a todas las bases de datos existentes y a cualquier nueva base de datos que pueda crearse en el futuro. No concede ningún permiso en ninguna base de datos más allá de conexión. Combinado con SELECT ALL USER SECURABLES o VIEW SERVER STATE para permitir que un proceso de auditoría vea todos los datos o todos los estados de la base de datos en la instancia de SQL Server.
HACERSE PASAR POR CUALQUIER LOGIN Permiso
Cuando se concede, permite que un proceso de nivel intermedio suplante la cuenta de los clientes que se conecten a él, a medida que se conecta a las bases de datos. Cuando se deniega, se puede impedir que un inicio de sesión con un alto nivel de privilegios suplante a otros inicios de sesión. Por ejemplo, es posible bloquear un inicio de sesión con el permiso CONTROL SERVER para impedir que suplante a otros inicios de sesión.
SELECCIONAR TODO USER Permiso de SECURABLES
Cuando se concede, un inicio de sesión como un auditor puede ver los datos de todas las bases de datos a las que el usuario puede conectarse. Cuando se deniega, impide el acceso a objetos a menos que estén en el esquema sys.
Permisos
Requiere el permiso CONTROL SERVER o la propiedad del elemento protegible. Si utiliza la cláusula AS, la entidad de seguridad especificada debe ser propietaria del elemento protegible para el que se deniegan los permisos.
Ejemplos
A. Denegar el permiso CONNECT SQL para un inicio de sesión de SQL Server y las entidades de seguridad para las que el inicio de sesión ha vuelto a concederlo
En el siguiente ejemplo se deniega el permiso CONNECT SQL al inicio de sesión Annika de SQL Server y a las entidades de seguridad a las que ha concedido el permiso.
USE master;
DENY CONNECT SQL TO Annika CASCADE;
GO
B. Denegación CREATE ENDPOINT del permiso a un inicio de sesión en SQL Server usando la opción AS
En el siguiente ejemplo se deniega el permiso CREATE ENDPOINT al usuario ArifS. En el ejemplo se utiliza la opción AS para especificar MandarP como la entidad de seguridad desde la que la entidad de seguridad que ejecuta la consulta deriva la autoridad para hacerlo.
USE master;
DENY CREATE ENDPOINT TO ArifS AS MandarP;
GO
Consulte también
GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY Permisos de servidor (Transact-SQL)
REVOKE Permisos de servidor (Transact-SQL)
Jerarquía de permisos (motor de base de datos)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)