GRANT (permisos de servidor de Transact-SQL)

Concede permisos en un servidor.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

GRANT permission [ ,...n ] 
    TO <grantee_principal> [ ,...n ] [ WITH GRANT OPTION ]
    [ 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 conceder para un servidor. Para obtener una lista de permisos, vea la sección Comentarios más adelante en este tema.

  • TO <grantee_principal>
    Especifica la entidad de seguridad para la que se concede el permiso.

  • AS <grantor_principal>
    Especifica la entidad de seguridad de la que la entidad de seguridad que ejecuta esta consulta deriva su derecho de conceder el permiso.

  • WITH GRANT OPTION
    Indica que la entidad de seguridad también podrá conceder el permiso especificado a otras entidades de seguridad.

  • 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 definido por el usuario.

Comentarios

Los permisos del ámbito del servidor solamente pueden concederse si la base de datos actual es master.

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. Puede ver la información acerca de 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 concederse para un servidor.

Permiso de servidor

Implícito en el permiso de servidor

ADMINISTER BULK OPERATIONS

CONTROL SERVER

ALTER ANY AVAILABILITY GROUP

CONTROL SERVER

ALTER ANY CONNECTION

CONTROL SERVER

ALTER ANY CREDENTIAL

CONTROL SERVER

ALTER ANY DATABASE

CONTROL SERVER

ALTER ANY ENDPOINT

CONTROL SERVER

ALTER ANY EVENT NOTIFICATION

CONTROL SERVER

ALTER ANY EVENT SESSION

CONTROL SERVER

ALTER ANY LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

CONTROL SERVER

ALTER ANY SERVER AUDIT

CONTROL SERVER

ALTER ANY SERVER ROLE

CONTROL SERVER

ALTER RESOURCES

CONTROL SERVER

ALTER SERVER STATE

CONTROL SERVER

ALTER SETTINGS

CONTROL SERVER

ALTER TRACE

CONTROL SERVER

AUTHENTICATE SERVER

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE AVAILABILITY GROUP

ALTER ANY AVAILABILITY GROUP

CREATE DDL EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT

ALTER ANY ENDPOINT

CREATE SERVER ROLE

ALTER ANY SERVER ROLE

CREATE TRACE EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY

CONTROL SERVER

SHUTDOWN

CONTROL SERVER

UNSAFE ASSEMBLY

CONTROL SERVER

VIEW ANY DATABASE

VIEW ANY DEFINITION

VIEW ANY DEFINITION

CONTROL SERVER

VIEW SERVER STATE

ALTER SERVER STATE

Permisos

El otorgante de permisos (o la entidad de seguridad especificada con la opción AS) debe tener asignado el mismo permiso con GRANT OPTION o un permiso superior que implique el permiso que se va a conceder. Los miembros del rol fijo de servidor sysadmin pueden conceder cualquier permiso.

Ejemplos

A.Conceder un permiso a un inicio de sesión

En el siguiente ejemplo se concede el permiso CONTROL SERVER al inicio de sesión TerryEminhizer de SQL Server.

USE master;
GRANT CONTROL SERVER TO TerryEminhizer;
GO

B.Conceder un permiso que dispone del permiso GRANT

En el siguiente ejemplo se concede ALTER ANY EVENT NOTIFICATION al inicio de sesión JanethEsteves de SQL Server con el derecho para conceder este permiso a otro inicio de sesión.

USE master;
GRANT ALTER ANY EVENT NOTIFICATION TO JanethEsteves WITH GRANT OPTION;
GO

C.Conceder un permiso a un rol de servidor

En el ejemplo siguiente se crean dos roles de servidor denominados ITDevAdmin e ITDevelopers. Concede el permiso ALTER ANY DATABASE al rol de servidor definido por el usuario ITDevAdmin incluida la opción WITH GRANT de manera que el rol de servidor ITDevAdmin pueda reasignar el permiso ALTER ANY DATABASE. A continuación, el ejemplo concede a ITDevelopers el permiso para utilizar el permiso ALTER ANY DATABASE del rol de servidor ITDevAdmin.

USE master;
CREATE SERVER ROLE ITDevAdmin ;
CREATE SERVER ROLE ITDevelopers ;
GRANT ALTER ANY DATABASE TO ITDevAdmin WITH GRANT OPTION ;
GRANT ALTER ANY DATABASE TO ITDevelopers AS ITDevAdmin ;
GO

Vea también

Referencia

GRANT (Transact-SQL)

DENY (Transact-SQL)

DENY (permisos de servidor de Transact-SQL)

REVOKE (permisos de servidor de Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)

sys.fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

Conceptos

Jerarquía de permisos (motor de base de datos)

Entidades de seguridad (motor de base de datos)

Permisos (motor de base de datos)