[关闭]
@vincent90 2016-01-25T12:13:13.000000Z 字数 693 阅读 1415

MSSQL禁止用户执行存储过程

MSSQL


通过模块(如存储过程和用户定义函数)包装数据访问可在应用程序周围提供额外的保护层。通过仅对存储过程或函数授予权限,同时对基础对象(如表)拒绝权限,您可以防止用户直接与数据库对象进行交互。SQL Server 通过所有权链接实现此目的。

基本权限理解

权限语句

权限语句 描述
GRANT 授予权限。
REVOKE 撤消权限。这是新对象的默认状态。从用户或角色撤消的权限仍可以从主体分配到的其他组或角色继承。
DENY DENY 撤消一个权限,使其不能被继承。DENY 优先于所有权限,只是 DENY 不适用于对象所有者或 sysadmin 的成员。如果您针对 public 角色对某个对象执行 DENY 权限语句,则会拒绝该对象的所有者和 sysadmin 成员以外的所有用户和角色访问该对象。

拒绝权限

语法

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

参数

[ sys.]

只有在引用目录视图和动态管理视图时才需要 sys 限定符。

system_object

指定要对其拒绝权限的对象。

principal

指定要从中撤消权限的主体。

拒绝执行存储过程示例

DENY EXECUTE ON [HexStudyDB3Reader].[dbo].[SP_GlobalLongId] TO userName

效果

更多

除了拒绝权限,还有赋予和收回权限,更多见参考资料。

参考资料

MSDN

SQL Server中角色与权限管理

SQL SERVER2008 存储过程、表、视图、函数的权限

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注