我正在运行SQL Server 2016,并且具有基于设置角色的访问权限,可以根据角色控制用户可以执行的操作。
我已经设定了一个角色:
Create Role [Developer]
我已授予该角色的权限以运行SELECTS,在所有表上购买拒绝INSERT,UPDATE和DELETE:
GRANT SELECT ON SCHEMA::dbo to [Developer]
DENY INSERT, UPDATE, DELETE ON SCHEMA::dbo to [Developer]
我将用户添加到角色中:
ALTER ROLE [Developer] ADD MEMBER [SomeUser]
我希望用户只执行特定的存储过程,因此我将特定的sprocs的执行权限授予该角色:
GRANT EXECUTE ON dbo.mySproc to [Developer]
但是,当我以SomeUser身份登录并尝试执行sproc时,我收到以下错误:
对象'mySproc',数据库'MyDB',架构'dbo'上的EXECUTE权限被拒绝。
我做错了吗?