我有一个代理用户,我正在尝试添加到可以执行所有存储过程的角色.使用其他StackOverflow帖子,我已经能够将这个脚本放在一起
USE abc Create ROLE db_exec go GRANT EXECUTE TO db_exec go EXEC sp_addrolemember 'db_exec','abc_user' go
当我尝试运行我的存储过程时,根据我的错误处理,我仍然会收到此错误.
The EXECUTE permission was denied on the object ‘sp_OACreate’,database ‘mssqlsystemresource’,schema ‘sys’.
如何让abc_user执行sp_OACreate?
解决方法
除了处于sysadmin角色之外,还需要在master数据库上授予执行权限,这些进程实际驻留在这些数据库中
use master go grant exec on sp_OACreate to abc_user GO
运行之后,您可以使用以下内容验证您是否有权执行该过程
SELECT * FROM master.sys.database_permissions [dp] JOIN master.sys.system_objects [so] ON dp.major_id = so.object_id JOIN master.sys.sysusers [usr] ON usr.uid = dp.grantee_principal_id AND usr.name = 'abc_user' WHERE permission_name = 'EXECUTE' AND so.name = 'sp_OACreate'
原文地址:https://www.jb51.cc/mssql/74973.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。