MS SQL中如何为角色授予特定存储过程的执行权限?
为SQL Server角色授予存储过程执行权限的方法
嘿,这事儿其实比你想的简单多了!既然你已经知道怎么给单个用户授权,那给角色授权的逻辑是一致的——直接把权限授予角色本身就行,不用挨个给角色里的用户操作。
角色的核心作用就是批量管理权限,当你把EXECUTE权限授予角色YY后,所有隶属于这个角色的用户(包括你提到的用户XX)都会自动继承这个权限,后续新增到该角色的用户也会自动获得权限,省了不少重复操作的功夫。
具体执行语句
GRANT EXECUTE ON [storedProcName] TO [YY]
验证权限是否生效(可选)
如果你想确认角色YY已经成功获取了该存储过程的执行权限,可以运行下面的查询语句:
SELECT dp.state_desc, dp.permission_name, dpri.name AS role_name, OBJECT_NAME(dp.major_id) AS procedure_name FROM sys.database_permissions dp JOIN sys.database_principals dpri ON dp.grantee_principal_id = dpri.principal_id WHERE dpri.name = 'YY' AND dp.permission_name = 'EXECUTE' AND OBJECT_NAME(dp.major_id) = 'storedProcName'
如果查询结果返回对应的数据,就说明权限已经成功授予啦。
内容的提问来源于stack exchange,提问作者codeNinja
相关产品推荐
相关产品推荐

