Sql server 授予对特定数据库中所有存储过程的执行权限
正如标题所示,我需要对数据库中的每个存储过程授予execute权限。我们已经从测试转移到生产,对生产数据库的控制更少。。所有导入的存储过程现在都没有权限。要知道的一件有趣的事情是,是否有任何方法可以确保所有导入的存储过程从一开始就获得执行权限Sql server 授予对特定数据库中所有存储过程的执行权限,sql-server,stored-procedures,permissions,Sql Server,Stored Procedures,Permissions,正如标题所示,我需要对数据库中的每个存储过程授予execute权限。我们已经从测试转移到生产,对生产数据库的控制更少。。所有导入的存储过程现在都没有权限。要知道的一件有趣的事情是,是否有任何方法可以确保所有导入的存储过程从一开始就获得执行权限 谢谢您的帮助。生成语句,然后复制它们并粘贴到查询窗口中运行它们 select 'grant execute on ' + QuoteName(specific_schema) + '.' + QuoteName(specific_name
谢谢您的帮助。生成语句,然后复制它们并粘贴到查询窗口中运行它们
select 'grant execute on ' +
QuoteName(specific_schema) + '.' +
QuoteName(specific_name) + ' to someone'
from information_schema.routines
where routine_type='PROCEDURE'
以及授予权限,您应该考虑架构。
因此,存储的进程在进程模式中命名- 多斯塔夫过程
- 多莫斯图夫程序
- 写程序
将executeonschema::Procs授予RoleWhatever
。在Procs
中创建的所有存储过程,然后继承EXECUTE
权限
角色在生产环境中可以是支持角色,但在其他环境中可以是开发人员角色。您必须授予模式的执行权限,如果有多个模式,则重复此操作
grant execute on schema :: yourschema to username
你能解释一下“生成声明”是什么意思吗?谢谢,那只是。。除此之外,每次添加存储过程时,都需要再次授予权限。当以下解决方案因任何原因不可能/不合适时,这很有用。这真的很笨拙。模式允许您在模式上授予权限,并且该模式中的所有新进程将继承权限