授予某个数据库中所有存储过程的执行权限

Phi*_*hil 5 sql-server permissions stored-procedures

正如标题所示,我需要为数据库中的每个存储过程授予执行权限.我们已经从测试转移到生产,并且对生产数据库的控制较少..并且所有导入的存储过程现在都没有任何权限.一个有趣的事情是,是否有任何方法可以确保所有导入的存储过程从一开始就获得执行权限?

谢谢你的帮助.

gbn*_*gbn 9

除了授予权限,您还应该考虑模式.

因此,您的存储过程在Procs模式中命名

  • Procs.DoStuff
  • Procs.DoMoreStuff
  • Procs.WriteStuff

那你就可以GRANT EXECUTE ON SCHEMA::Procs TO RoleWhatever.Procs然后创建的所有存储过程都继承EXECUTE权限

角色无论是生产中的支持角色,还是其他环境中的开发人员角色.


Ric*_*iwi 6

生成语句,然后将它们复制并粘贴到查询窗口中以运行它们

select 'grant execute on ' + 
    QuoteName(specific_schema) + '.' +
    QuoteName(specific_name) + ' to someone'
from information_schema.routines
where routine_type='PROCEDURE'
Run Code Online (Sandbox Code Playgroud)