GRANT (Transact-SQL)

Concede permisos en un elemento que puede protegerse a una entidad de seguridad.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
      | permission [ ( column [ ,...n ] ) ] [ ,...n ]
      [ ON [ class :: ] securable ] TO principal [ ,...n ] 
      [ WITH GRANT OPTION ] [ AS principal ]

Argumentos

  • ALL
    Esta opción ha quedado obsoleta y sólo se mantiene por razones de compatibilidad con versiones anteriores. No concede todos los permisos posibles. Conceder ALL es equivalente a conceder los siguientes permisos.

    • Si el elemento que puede protegerse es una base de datos, ALL significa BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE y CREATE VIEW.

    • Si el elemento que puede protegerse es una función escalar, ALL significa EXECUTE y REFERENCES.

    • Si el elemento que puede protegerse es una función con valores de tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE.

    • Si el elemento que puede protegerse es un procedimiento almacenado, ALL significa EXECUTE.

    • Si el elemento que puede protegerse es una tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE.

    • Si el elemento que puede protegerse es una vista, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE.

  • PRIVILEGES
    Incluido por compatibilidad con ISO. No cambia el comportamiento de ALL.

  • permission
    Nombre de un permiso. Las asignaciones de permisos válidas a elementos que pueden protegerse se describen en los subtemas que se muestran a continuación.

  • column
    Especifica el nombre de una columna de una tabla en la que se van a conceder los permisos. Es preciso utilizar paréntesis ( ).

  • class
    Especifica la clase del elemento que puede protegerse en el que se va a conceder el permiso. Se requiere el calificador de ámbito ::.

  • securable
    Especifica el elemento que puede protegerse en el que se va a conceder el permiso.

  • TO principal
    Nombre de una entidad de seguridad. Las entidades de seguridad a las que se pueden conceder permisos en un elemento que puede protegerse varían según el elemento que puede protegerse. Vea los subtemas enumerados a continuación para comprobar las combinaciones válidas.

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

  • AS principal
    Especifica una entidad de seguridad de la que la entidad de seguridad que ejecuta esta consulta deriva su derecho de conceder el permiso.

Notas

La sintaxis completa de la instrucción GRANT es compleja. El anterior diagrama de sintaxis se ha simplificado para concentrar la atención en su estructura. La sintaxis completa para conceder permisos en elementos que pueden protegerse específicos se describe en los temas enumerados a continuación.

Se puede utilizar la instrucción REVOKE para retirar permisos concedidos y la instrucción DENY para evitar que una entidad de seguridad obtenga un permiso específico mediante una instrucción GRANT.

La concesión de un permiso quita DENY o REVOKE de ese permiso en el elemento que puede protegerse especificado. Si se deniega el mismo permiso en un ámbito superior que contiene el elemento que puede protegerse, DENY tiene prioridad. No obstante, revocar el permiso concedido en un ámbito superior no tiene prioridad.

Los permisos en nivel de base de datos se conceden en el ámbito de la base de datos especificada. Si un usuario necesita permisos para objetos de otra base de datos, cree la cuenta del usuario en la otra base de datos o conceda a la cuenta del usuario acceso a la otra base de datos y a la base de datos actual.

Nota de advertenciaAdvertencia

Un permiso DENY de nivel de tabla no tiene prioridad sobre uno GRANT de nivel de columna. Esta incoherencia en la jerarquía de permisos se ha mantenido por motivos de compatibilidad con versiones anteriores. Se quitará en una versión futura.

El procedimiento almacenado del sistema sp_helprotect informa de los permisos sobre un elemento que puede protegerse en el nivel de base de datos.

Permisos

El otorgante de permisos (o la entidad de seguridad especificada con la opción AS) debe tener el permiso con GRANT OPTION, o un permiso superior que implique el permiso que se va a otorgar. Si se utiliza la opción AS, se aplican requisitos adicionales. Para obtener más detalles vea el tema específico de los elementos que pueden protegerse.

Los propietarios de objetos pueden conceder permisos en los objetos que poseen. Las entidades de seguridad con permiso CONTROL sobre un elemento que puede protegerse pueden conceder permisos para ese elemento.

Los receptores del permiso CONTROL SERVER como los miembros de la función fija de servidor sysadmin pueden conceder los permisos en cualquier elemento que puede protegerse en el servidor. Los beneficiarios del permiso CONTROL en una base de datos, por ejemplo, los miembros de la función fija de base de datos db_owner, pueden conceder cualquier permiso sobre cualquier elemento que puede protegerse en la base de datos. Los receptores del permiso CONTROL en un esquema pueden conceder los permisos en cualquier objeto del esquema.

Ejemplos

Para conocer la sintaxis específica de los elementos que pueden protegerse vea los siguientes temas.

Función de aplicación

GRANT (permisos de entidad de seguridad de base de datos de Transact-SQL)

Ensamblado

GRANT (permisos de ensamblado Transact-SQL)

Clave asimétrica

GRANT (permisos de clave asimétrica de Transact-SQL)

Certificado

GRANT (permisos de certificado de Transact-SQL)

Contrato

GRANT (permisos de Service Broker de Transact-SQL)

Base de datos

GRANT (permisos de base de datos de Transact-SQL)

Extremo

GRANT (permisos de extremo de Transact-SQL)

Catálogo de texto completo

GRANT (permisos de texto completo de Transact-SQL)

Lista de palabras irrelevantes de texto completo

GRANT (permisos de texto completo de Transact-SQL)

Función

GRANT (permisos de objeto de Transact-SQL)

Inicio de sesión

GRANT (permisos de entidad de seguridad de servidor de Transact-SQL)

Tipo de mensaje

GRANT (permisos de Service Broker de Transact-SQL)

Objeto

GRANT (permisos de objeto de Transact-SQL)

Cola

GRANT (permisos de objeto de Transact-SQL)

Enlace de servicio remoto

GRANT (permisos de Service Broker de Transact-SQL)

Función

GRANT (permisos de entidad de seguridad de base de datos de Transact-SQL)

Ruta

GRANT (permisos de Service Broker de Transact-SQL)

Esquema

GRANT (permisos de esquema de Transact-SQL)

Servidor

GRANT (permisos de servidor de Transact-SQL)

Servicio

GRANT (permisos de Service Broker de Transact-SQL)

Procedimiento almacenado

GRANT (permisos de objeto de Transact-SQL)

Clave simétrica

GRANT (permisos de clave simétrica de Transact-SQL)

Sinónimo

GRANT (permisos de objeto de Transact-SQL)

Objetos de sistema

GRANT (permisos de objeto de sistema de Transact-SQL)

Tabla

GRANT (permisos de objeto de Transact-SQL)

Tipo

GRANT (permisos de tipo de Transact-SQL)

Usuario

GRANT (permisos de entidad de seguridad de base de datos de Transact-SQL)

Vista

GRANT (permisos de objeto de Transact-SQL)

Colección de esquemas XML

GRANT (permisos de colección de esquemas XML de Transact-SQL)