是否有系统角色允许查看数据库中所有对象的定义?

时间:2013-03-18 15:04:04

标签: sql-server-2008

我需要通过充分访问生产数据库来请求全局组,以便对使用该数据库的应用程序执行支持。我正在尝试确定我需要具体的权利。

为了对所有表执行查询,我想请求db_datareader访问权限。我想避免维护确保全局组具有SELECTVIEW DEF访问所有对象的权限。我知道db_datareader rights如果获得批准,将为用户提供所有表格的完整SELECT权限。是否有对应的角色授予查看所有表,存储过程,视图等的定义的权限?

2 个答案:

答案 0 :(得分:0)

USE [your database]
EXEC sp_addrolemember 'db_datareader', '[your user name]'

答案 1 :(得分:0)

定义“对生产数据库的充分访问”

作为一名DBA,我不会给任何DDL管理员或任何类型的访问权限,允许用户动态更改架构,这是灾难的一个方法,将使您的DBA更加努力。 DBA必须并且应该能够在正确测试后帮助解决性能问题并更改生产模式。你真的不想在没有测试1st的情况下改变生产模式。

话虽如此,如果用户想要有限的访问权限来解决性能问题(这实际上可以让您的生活更轻松),他们可能需要以下任何一个:

  • 查看数据库状态
  • 查看服务器状态

这两个允许访问DMV,这有助于查明性能问题以及查询的运行方式。

SELECT,UPDATE,INSERT等是正常的。如果您的数据库对象(表,视图,sprocs)不需要细化权限,我将使用任何默认数据库角色并将用户或用户放入其中。

运行存储过程的权限将是EXECUTE。