Share via


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

Actualizado: 17 de julio de 2006

Concede permisos en objetos de sistema, como procedimientos almacenados, procedimientos almacenados extendidos, funciones y vistas.

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

Sintaxis

GRANT { SELECT | EXECUTE } ON [ sys.]system_object TO principal 

Argumentos

  • [ sys.].
    Sólo se requiere el calificador sys para hacer referencia a vistas de catálogo y vistas de administración dinámica.
  • system_object
    Especifica el objeto en el que se va a conceder el permiso.
  • principal
    Especifica la entidad de seguridad a la que se va a conceder el permiso.

Notas

Puede utilizar esta instrucción para conceder permisos para determinados procedimientos almacenados, procedimientos almacenados extendidos, funciones con valores de tabla, funciones escalares, vistas, vistas de catálogo, vistas de compatibilidad, vistas INFORMATION_SCHEMA, vistas de administración dinámica y tablas del sistema instalados por SQL Server 2005. Cada objeto del sistema existe como registro único en la base de datos de recursos del servidor (mssqlsystemresource). La base de datos de recursos es de sólo lectura. Se muestra un vínculo al objeto como registro en el esquema sys de todas las bases de datos. Es posible conceder, denegar y revocar el permiso para ejecutar o seleccionar un objeto del sistema.

Para conceder un permiso para ejecutar o seleccionar un objeto no es necesario cumplir todos los permisos requeridos para utilizar el objeto. La mayoría de los objetos realiza operaciones para las que se necesitan permisos adicionales. Por ejemplo, un usuario para el que se concede el permiso EXECUTE en sp_addlinkedserver no puede crear un servidor vinculado a menos que el usuario sea también miembro de la función fija de servidor sysadmin.

La resolución predeterminada de nombres resuelve los nombres no calificados de procedimiento para la base de datos de recursos. Por tanto, sólo se requiere el calificador sys para especificar vistas de catálogo y vistas de administración dinámica.

No se admite la concesión de permisos en desencadenadores y columnas de objetos del sistema.

Los permisos de objetos del sistema se mantendrán durante las actualizaciones de SQL Server.

Puede ver los objetos del sistema en la vista de catálogo sys.system_objects. Puede ver los permisos de objetos del sistema en la vista de catálogo sys.database_permissions en la base de datos master.

La siguiente consulta muestra información acerca de los permisos de objetos del sistema:

SELECT * FROM master.sys.database_permissions AS dp 
    JOIN sys.system_objects AS so
    ON dp.major_id = so.object_id
    WHERE dp.class = 1 AND so.parent_object_id = 0 ;
GO

Permisos

Requiere el permiso CONTROL SERVER.

Ejemplos

A. Conceder el permiso SELECT en una vista

En el siguiente ejemplo se concede el permiso Smacrae del inicio de sesión de SQL Server para seleccionar una vista que presente todos los inicios de sesión de SQL Server. A continuación, el ejemplo concede el permiso adicional necesario para ver los metadatos en los inicios de sesión de SQL Server que no son propiedad del usuario.

USE AdventureWorks;
GRANT SELECT ON sys.sql_logins TO Smacrae;
GRANT VIEW SERVER STATE to Smacrae;
GO

B. Conceder el permiso EXECUTE en un procedimiento almacenado extendido

En el siguiente ejemplo se concede el permiso EXECUTE en xp_readmail para Smacrae.

GRANT EXECUTE ON xp_readmail TO Smacrae;
GO

Vea también

Referencia

sys.system_objects (Transact-SQL)
sys.database_permissions (Transact-SQL)
REVOKE (permisos de objeto de sistema de Transact-SQL)
DENY (permisos de objeto de sistema de Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido nuevo:
  • Se ha agregado un ejemplo de concesión de permisos para ejecutar un objeto del sistema.