Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 授予对特定数据库中所有存储过程的执行权限_Sql Server_Stored Procedures_Permissions - Fatal编程技术网

Sql server 授予对特定数据库中所有存储过程的执行权限

Sql server 授予对特定数据库中所有存储过程的执行权限,sql-server,stored-procedures,permissions,Sql Server,Stored Procedures,Permissions,正如标题所示,我需要对数据库中的每个存储过程授予execute权限。我们已经从测试转移到生产,对生产数据库的控制更少。。所有导入的存储过程现在都没有权限。要知道的一件有趣的事情是,是否有任何方法可以确保所有导入的存储过程从一开始就获得执行权限 谢谢您的帮助。生成语句,然后复制它们并粘贴到查询窗口中运行它们 select 'grant execute on ' + QuoteName(specific_schema) + '.' + QuoteName(specific_name

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


谢谢您的帮助。

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

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

你能解释一下“生成声明”是什么意思吗?谢谢,那只是。。除此之外,每次添加存储过程时,都需要再次授予权限。当以下解决方案因任何原因不可能/不合适时,这很有用。这真的很笨拙。模式允许您在模式上授予权限,并且该模式中的所有新进程将继承权限