REVOKE 系统对象权限 (Transact-SQL)
从主体中撤消对系统对象(例如,存储过程、扩展存储过程、函数以及视图)的权限。
语法
REVOKE { SELECT | EXECUTE } ON [sys.]system_object FROM principal
参数
[sys.] .
只有在引用目录视图和动态管理视图时才需要 sys 限定符。system_object
指定要对其撤消权限的对象。principal
指定要从中撤消权限的主体。
注释
可使用该语句撤消对 SQL Server 安装的特定存储过程、扩展存储过程、表值函数、标量函数、视图、目录视图、兼容性视图、INFORMATION_SCHEMA 视图、动态管理视图以及系统表的权限。每个系统对象都作为唯一的一条记录存在于资源数据库 (mssqlsystemresource) 中。该资源数据库为只读。指向对象的链接作为各数据库的 sys 架构中的一条记录显示。
默认名称解析将解析资源数据库的非限定过程名称。因此,只有当指定目录视图和动态管理视图时,才需要 sys. 限定符。
注意 |
---|
撤消对系统对象的权限会导致依赖这些权限的应用程序失败。SQL Server Management Studio 使用目录视图,并且在更改了对目录视图的默认权限之后可能无法发挥预期的作用。 |
不支持撤消对触发器以及对系统对象列的权限。
在 SQL Server 升级期间,对系统对象的权限将予以保留。
在 sys.system_objects 目录视图中可以查看系统对象。
权限
需要 CONTROL SERVER 权限。
示例
以下示例从 public 中撤消对 sp_addlinkedserver 的 EXECUTE 权限。
REVOKE EXECUTE ON sys.sp_addlinkedserver FROM public;
GO