Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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_Sql Server 2008_Permissions - Fatal编程技术网

为开发人员提供适当的SQL Server权限

为开发人员提供适当的SQL Server权限,sql,sql-server-2008,permissions,Sql,Sql Server 2008,Permissions,经过几次谷歌搜索和快速查看这里的问题后,我似乎找不到我认为是SQL Server权限的食谱答案 正如我经常在小商店看到的那样,这里的大多数开发人员在开发时都使用SQL Server的管理员帐户。我想设置我可以分配给开发人员的角色和权限,这样我们就可以完成我们的工作,但也可以使用所需的最低权限。任何人都可以提供有关分配SQL Server权限的建议吗 组成部分: SQL Server 2008 SQL Server Reporting Services(SSRS)2008 SQL Server集

经过几次谷歌搜索和快速查看这里的问题后,我似乎找不到我认为是SQL Server权限的食谱答案

正如我经常在小商店看到的那样,这里的大多数开发人员在开发时都使用SQL Server的管理员帐户。我想设置我可以分配给开发人员的角色和权限,这样我们就可以完成我们的工作,但也可以使用所需的最低权限。任何人都可以提供有关分配SQL Server权限的建议吗

组成部分:

  • SQL Server 2008
  • SQL Server Reporting Services(SSRS)2008
  • SQL Server集成服务(SSIS)2008
平台:

  • 生产
  • 分期付款/质量保证
  • 发展/一体化
由于一些遗留应用程序和网络,我们正在运行“混合模式”安全性,但正在转向Windows Auth。我不确定这是否真的会影响角色设置

我计划将开发人员对Prod和Staging/QA数据库的访问设置为只读。但是,我仍然希望开发人员保留运行分析的能力

我们需要具有更高权限级别的部署帐户。我们目前正试图弄清楚SSIS包部署需要哪些权限

在开发服务器中,开发人员需要广泛的权限。然而,我不确定让他们都成为管理员真的是最好的选择

很难相信,还没有人发布过一个像样的示例脚本,为开发人员和部署人员设置了一组合适的权限来设置这些角色

我们可能可以通过锁定东西,然后在发现需要时添加权限来解决这一问题,但这对每个人来说都是一个太大的PITA了


有人能给我指出或提供一个很好的例子,说明在这类平台上这些角色的权限吗?

这将因公司而异。关键因素是锁定生产,这样开发人员就不能创建或更改对象。我们的开发人员只拥有prod上的datareader权限,没有其他权限。除非登录到应用程序并使用应用程序的权限,否则他们甚至无法执行存储的进程

我们在dev上为许多开发人员提供了几乎完全的权限,但这可能会因他们应该针对哪些数据库进行开发以及他们要访问哪些服务器以获取他们支持的应用程序而有所不同。因此,对一台开发服务器具有完全访问权限的开发人员甚至可能没有对另一台开发服务器的选择权限

通过将开发人员锁定在prod之外,我们获得了一些关键的东西。首先,没有开发cowboy数据库。他们知道他们必须为其他人创建脚本来运行,这样他们就不会进行随机更改,然后忘记这些更改。这也意味着,将脚本放入源代码管理并不成问题,因为只有在源代码管理中才有权执行prod的人才会运行脚本

接下来,没有人对prod进行紧急的、未经测试的更改,这些更改永远不会涉及到开发人员和qa,因此在下次加载新版本时就会丢失。因此,在prod上不起作用的更改也大大减少了,因为现在在有人尝试将其应用于prod之前,所有内容都经过了测试


人们也不会因为忘记突出显示where子句而对prod进行动态数据更改并意外更新整个用户表(是的,这发生在我们锁定prod之前)

我一直在寻找类似的指导,但没有找到。经过一些实验后,我认为一个简单的设置是将用户添加到“dbcreator”服务器角色,然后将用户添加到他们将处理的每个数据库中的“db_所有者”角色。这将允许用户创建新的数据库,以及修改他们是“db_所有者”成员的数据库。

开发人员做什么?创建表格?索引?存储过程?编写脚本来填充表?他们可以删除表或存储过程吗?他们可以授予权限吗?他们可以添加登录名和角色吗?开发人员可以做的各种事情可能解释了为什么这里没有标准答案。杜克,你可能是对的,这就是为什么没有标准答案的原因。在许多小型商店中,开发人员都是开发服务器上的管理员。我正在寻找一个权限集,它在大多数情况下都会授予他们类似管理员的功能,但拒绝他们进行最危险的操作(如创建登录)。因此,我将实现第一个好的猜测,然后通过PITA过程添加特权,因为我们在错误的地方撞到了墙+1对于可能是答案的评论。DOK,请将您的回答作为答案发布,以便我可以继续并将此问题标记为已回答。我讨厌留下悬而未决的问题,更不用说“创建悬赏”的唠叨了。是的,我提到我计划设置对Prod和Staging的只读访问。我同意这些是合理的第一步。关于这一点,我有一些想法,但我还没有来得及写下来。我认为用“视情况而定…”来回答这个问题不是很有帮助。我仍然相信,有人可以创建一个合理的“样本模型”,让像我们这样的人有一个体面的起点。从那里,我们可以根据需要或公司政策应用我们自己的限制或权限扩展。