GRANT (permisos de entidad de seguridad de servidor de Transact-SQL)
Se aplica a: SQL Server Azure SQL Managed Instance
Proporciona permisos en un inicio de sesión de SQL Server.
Convenciones de sintaxis de Transact-SQL
Sintaxis
GRANT permission [ ,...n ] }
ON
{ [ LOGIN :: SQL_Server_login ]
| [ SERVER ROLE :: server_role ] }
TO <server_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
| server_role
Argumentos
permission
Especifica un permiso que se puede otorgar en un inicio de sesión de SQL Server. Para obtener una lista de permisos, vea la sección Comentarios que se muestra posteriormente en este tema.
LOGIN :: SQL_Server_login
Especifica el inicio de sesión de SQL Server para el que se va a conceder el permiso. El calificador de ámbito ( :: ) es obligatorio.
SERVER ROLE :: server_role
Especifica el rol del servidor definido por el usuario en el que se concede el permiso. El calificador de ámbito ( :: ) es obligatorio.
TO <server_principal> Especifica el rol de servidor o el inicio de sesión de SQL Server para el que se va a conceder el permiso.
SQL_Server_login
Especifica el nombre de un inicio de sesión de SQL Server.
SQL_Server_login_from_Windows_login
Especifica el nombre de un inicio de sesión de SQL Server creado desde un inicio de sesión de Windows.
SQL_Server_login_from_certificate
Especifica el nombre de un inicio de sesión de SQL Server asignado a un certificado.
SQL_Server_login_from_AsymKey
Especifica el nombre de un inicio de sesión de SQL Server asignado a una clave asimétrica.
server_role
Especifica el nombre de un rol de servidor definido por el usuario.
WITH GRANT OPTION
Indica que la entidad de seguridad también podrá conceder el permiso especificado a otras entidades de seguridad.
AS SQL_Server_login
Especifica el inicio de sesión de SQL Server del que la entidad de seguridad que ejecuta esta consulta deriva su derecho de conceder el permiso.
Observaciones
Los permisos del ámbito del servidor solamente pueden concederse si la base de datos actual es maestra.
Encontrará información sobre los permisos de servidor en la vista de catálogo sys.server_permissions. Encontrará información sobre las entidades de seguridad de servidor en la vista de catálogo sys.server_principals.
Los roles de servidor y los inicios de sesión de SQL Server son protegibles en el nivel de servidor. La mayoría de permisos limitados y específicos que se pueden conceder para un rol de servidor o inicio de sesión de SQL Server se muestran en la siguiente tabla, junto con permisos más generales que los incluyen por implicación.
Permiso de rol de servidor o de inicio de sesión de SQL Server | Permiso de rol de servidor o inicio de sesión implícito de SQL Server | Implícito en el permiso de servidor |
---|---|---|
CONTROL | CONTROL | CONTROL SERVER |
IMPERSONATE | CONTROL | CONTROL SERVER |
VIEW DEFINITION | CONTROL | VIEW ANY DEFINITION |
ALTER | CONTROL | ALTER ANY LOGIN ALTER ANY SERVER ROLE |
Permisos
Para los inicios de sesión, se necesita el permiso CONTROL en el inicio de sesión o el permiso ALTER ANY LOGIN en el servidor.
Para los roles de servidor, se necesita el permiso CONTROL en el rol de servidor o el permiso ALTER ANY SERVER ROLE en el servidor.
Ejemplos
A. Conceder el permiso IMPERSONATE para un inicio de sesión
En el siguiente ejemplo se concede el permiso IMPERSONATE
para el inicio de sesión WanidaBenshoof
de SQL Server a un inicio de sesión de SQL Server creado desde el usuario de Windows AdvWorks\YoonM
.
USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO
B. Conceder el permiso VIEW DEFINITION con GRANT OPTION
En el siguiente ejemplo se concede el permiso VIEW DEFINITION
para el inicio de sesión de SQL Server EricKurjan
al inicio de sesión de SQL Server RMeyyappan
con GRANT OPTION
.
USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
WITH GRANT OPTION;
GO
C. Conceder el permiso VIEW DEFINITION en un rol de servidor
En el siguiente ejemplo se concede el permiso VIEW DEFINITION
en el rol de servidor Sales
al rol de servidor Auditors
.
USE master;
GRANT VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;
GO
Consulte también
sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
CREATE LOGIN (Transact-SQL)
Entidades de seguridad (motor de base de datos)
Permisos (motor de base de datos)
Funciones de seguridad (Transact-SQL)
Procedimientos almacenados de seguridad (Transact-SQL)