Rob*_*Rob 5 sql-server-2008 sql-server
与我之前的问题类似:Prevent Non Copy Only Backups,如何创建一个可以对我的数据库执行所有操作的用户<EXCEPT>
进行备份?
我已授予他们除DB_backupOperator
和之外的所有角色DB_Owner
。问题是用户需要在数据库中创建对象(存储过程、函数、表等等)。
对于这些角色,这是可能的,但是,他们无法使用他们创建的对象。
IE
create proc test as select 1
go
grant exec on test to [OtherUser]
Run Code Online (Sandbox Code Playgroud)
这成功完成
grant exec on test to [TheCurrentUser]
Run Code Online (Sandbox Code Playgroud)
抛出错误
不能授予、拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限
另外,如果我只是尝试执行存储过程,我会得到一个
EXECUTE 权限被拒绝
我对想法持开放态度。
谢谢。
编写存储过程的脚本,并检查最后一行。我敢打赌,你的程序末尾有一个“grant exec”声明。发生这种情况是因为无论谁编译了 proc,都没有在 grant 之前放置 GO 语句,因此它包含在 proc 中。