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
Base de datos de Azure SQL de Microsoft Fabric
Deniega permisos en objetos de sistema, como procedimientos almacenados, procedimientos almacenados extendidos, funciones y vistas.
Convenciones de sintaxis de Transact-SQL
Sintaxis
DENY { SELECT | EXECUTE } ON [ sys. ] system_object TO principal
Argumentos
[ sys. ]
El sys
calificador solo es necesario cuando se hace referencia a vistas de catálogo y vistas de administración dinámica.
system_object
Especifica el objeto en el que se va a denegar el permiso.
principal
Especifica la entidad de seguridad desde la que se revoca el permiso.
Comentarios
Esta instrucción se puede usar para denegar permisos en determinados procedimientos almacenados, procedimientos almacenados extendidos, funciones con valores de tabla, funciones escalares, vistas, vistas de catálogo, vistas de compatibilidad, INFORMATION_SCHEMA
vistas, vistas de administración dinámica y tablas del sistema instaladas por SQL Server. Cada uno de estos objetos del sistema existe como un registro único en la base de datos de recursos (mssqlsystemresource
). La base de datos de recursos es de solo lectura. Un vínculo al objeto se expone como un registro en el sys
esquema de cada base de datos.
La resolución predeterminada de nombres resuelve los nombres no calificados de procedimiento para la base de datos de recursos. Por lo tanto, el sys
calificador solo es necesario cuando se especifican vistas de catálogo y vistas de administración dinámica.
Precaución
Denegar permisos en objetos del sistema hace que las aplicaciones que dependen de ellos produzcan un error. SQL Server Management Studio usa vistas de catálogo y podría no funcionar según lo esperado, si cambia los permisos predeterminados en las vistas de catálogo.
No se admite la denegación de permisos en desencadenadores y en columnas de objetos del sistema.
Los permisos de los objetos del sistema se conservan durante las actualizaciones de SQL Server.
Puede ver los objetos del sistema en la vista de catálogo sys.system_objects . Los permisos de los objetos del sistema están visibles en la vista de catálogo sys.database_permissions de la master
base de datos.
La siguiente consulta muestra información acerca de los permisos de objetos del sistema:
SELECT *
FROM master.sys.database_permissions AS dp
INNER 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
En el ejemplo siguiente se deniega EXECUTE
el permiso a xp_cmdshell
público.
DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO