如何在SQL Server 2012上创建只读服务器角色?

时间:2014-03-10 20:51:36

标签: sql-server permissions sql-server-2012

我在创建新服务器角色时授予“查看任何数据库”权限,但是实现此权限只允许用户查看系统数据库。

我正在尝试创建一个只读的服务器角色,可以读取任何数据库。

有没有办法创建用户定义的服务器角色来读取用户数据库?或者我是否必须通过每个用户的用户映射来完成此操作?

1 个答案:

答案 0 :(得分:0)

所以,没有答案,你不能将数据库级权限分配给服务器级角色,你甚至无法将服务器角色添加到数据库角色,我觉得这很令人沮丧,因为我试图这样做和你一样。

我最终这样做的方式并不是完全使用服务器角色,我做了以下几点:

  • 为每个我想要只读访问
  • 的服务器创建一个AD组
  • 在服务器上为该组
  • 创建了一个登录名
  • 为模型数据库
  • 分配了对db_datareader角色的登录
  • 在所有预先存在的数据库上分配登录到db_datareader角色
  • 将我的Windows用户添加到AD群组

这样,您可以简单地(或训练您的服务台人员分配)需要只读访问服务器上所有数据库的用户到AD组,此外,当角色在模型数据库中设置时,他们将也可以访问服务器上所有新创建的数据库。