【问题标题】:Creating a custom server role in SQL 2005在 SQL 2005 中创建自定义服务器角色
【发布时间】:2011-05-26 09:51:12
【问题描述】:

我是网络场的系统管理员,目前我的开发人员可以作为系统管理员连接到 SQL 服务器。

现在,我希望他们能够连接到所有数据库,但只有修改数据库架构等的权限,而不是创建新数据库或更改权限。

我是否可以创建自定义服务器角色并配置它拥有的权限?

【问题讨论】:

  • 不会将开发组分配给各个数据库吗?肯定不是所有开发人员都在所有数据库上工作吗?来想想吧!为什么要让开发人员更改架构:让他们编写脚本更改,将它们放在 SCC 中,然后将它们交给 DBA 进行部署......
  • 问题是不是这么大的公司,我们的开发团队只有 5 个人,所以他们也改变了数据库和开发应用程序。他们需要访问数据库,但不需要完全访问。
  • 当 chnage 破坏某些东西时,您(和他们)如何解决?比如说,周五下午的变化?我原以为允许开发人员创建数据库不如允许他们就地进行更改那么严重。但是,嘿,我知道什么......
  • 当他们破坏某些东西时,他们必须自己修复它。如果需要恢复,那么我会这样做。但它并没有发生很多......

标签: sql sql-server-2005 roles


【解决方案1】:

我会将它们放在以下数据库角色中,因为我认为没有满足您要求的服务器角色。

db_datareader
db_datawriter
db_ddladmin

然后将它们从sysadmin 服务器角色中删除。

我认为您可以随后发出DENY 语句来阻止他们使用CREATE,ALTER,DROP DATABASE 语句。

例如

DENY CREATE DATABASE to UserXYZ

我没有对此进行测试,所以我不能 100% 确定这是否可行。

如果您没有在master 数据库中授予他们db_ddladmin 权限,那么他们将无法创建任何新数据库。

【讨论】:

  • 所以我必须检查所有数据库并将我所有的开发人员添加到每个数据库的 db_datareader、db_datawriter、db_ddladmin 数据库角色中?
  • 我认为这是最好的选择。我假设您的所有开发人员都在一个组中,您也可以分配权限?您可以创建一个脚本来为您完成所有工作,然后在您的数据库中运行。
  • 我没有使用 WINDOWS NT 权限,因为服务器是远程服务器,不在我公司的域中。无论如何要创建一个SQL组?并将 SQL 用户放入其中?
猜你喜欢
  • 2018-12-11
  • 2019-07-20
  • 1970-01-01
  • 2014-03-15
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多