正如标题所示,我需要在数据库中的每个存储过程上授予执行权限。我们已经从测试环境切换到生产环境,对生产数据库的控制较少,所有导入的存储过程现在都没有任何权限。有趣的是,是否有任何方法可以确保从一开始就为所有导入的存储过程授予执行权限?
谢谢任何帮助。
谢谢任何帮助。
除了授予权限外,您还应该考虑架构。
因此,您的存储过程应该以 Procs 架构命名。
然后,您可以使用 GRANT EXECUTE ON SCHEMA::Procs TO RoleWhatever
。所有在 Procs
中创建的存储过程都将继承 EXECUTE
权限。
RoleWhatever 可能是生产中的支持角色,但在其他环境中是开发人员角色。
生成语句,然后将其复制并粘贴到查询窗口中运行
select 'grant execute on ' +
QuoteName(specific_schema) + '.' +
QuoteName(specific_name) + ' to someone'
from information_schema.routines
where routine_type='PROCEDURE'
您需要在模式上授予执行权限,如果您有多个模式,则需要重复此操作
grant execute on schema :: yourschema to username