我是 MS SQL DB 开发人员,希望在服务器上获得更多权限

Phi*_*ack 2 sql-server access-control

所以我正在尝试使用 Visual Studio,但无法将 DEV 数据库导入到项目中。我每周都会遇到这个问题几次,因为我要么创建 SSIS 包,要么从头开始构建数据库,或者创建需要我访问多个数据库、创建作业计划的 SSAS 模型......

我当前的错误是我无法在 Visual Studio 中对 DEV 数据库进行逆向工程,因为我没有视图定义。这可能是我遇到的更常见的问题之一。当我试图查看执行计划时,我遇到了同样的错误。

因此,基于这篇文章http://sqlmag.com/database-security/security-options-developers-devsandbox-environments 我想知道对架构的授予控制是否将涵盖我需要的一切。

出现的另一个问题是我无法查询数据库以查看谁可能锁定了我的查询。运行 SP_who2 只会告诉我我在做什么。不得不提交票证并等待 DBA 找出问题,这非常令人沮丧。我需要什么权利才能运行 SP_WHO2 或运行查询以查看系统中发生了什么。

当出现问题时,我是否应该无法杀死我自己的 SPID?SSMS 中的停止按钮并不总是有效。

我还想运行 Brent Ozar 的 spBlitz 工具,以便我可以调整我自己的查询。这应该不是开发人员的任务。我想知道我是否创建了一个索引,它是否曾经被命中以及多久被命中。或者我应该在另一个覆盖索引中包含一个我需要的列。

想法?作为一名数据库开发人员,Grant Control 会为我提供我需要的一切,不要与报告编写者或为应用程序编写基本过程的人混淆。

sep*_*pic 6

我想知道对架构的授权控制是否会涵盖我需要的一切

Grant Control 会为我提供作为数据库开发人员所需的一切。

但是您并没有写出您作为数据库开发人员所需要的东西。如果你用你要完成的任务更新你的问题,我会回答这个问题。目前我只能给你一般性的答案。

拥有CONTROL架构,您只能访问此架构对象,即您可以

  • SELECT INSERT UPDATE DELETEALTER表(但你不能CREATE 新建表,因为这需要CREATE TABLE权限)
  • ALTEREXECUTE模块(但不是CREATE新的,因为你没有CREATE PROCEDURE/VIEW/FUNCTION权限)
  • GRANT 对用户的架构对象的权限,但不是 CREATE USER

您仍然缺乏SHOWPLAN权限CONTROL ON SCHEMA ,当然您继续只看到您自己的会话使用sp_who2

要查看服务器上的所有会话,您需要VIEW SERVER STATE服务器级别的权限。

为了能够查看计划,您需要SHOWPLAN在查询中涉及的所有数据库中获得许可(因此,如果您使用临时表,则如果没有SHOWPLANin则无法查看计划tempdb

为了能够创造工作,您必须是以下组织的成员 SQLAgentOperatorRole

为了能够终止任何会话,您需要ALTER ANY CONNECTION服务器级别的权限。

要在 SSMS 中使用停止按钮,您不需要任何特殊许可

我想知道我是否创建了一个索引并且它是否被命中以及多久被命中

为了能够从中选择,sys.dm_db_index_usage_stats您需要VIEW SERVER STATE获得许可。

………………

在我看来,我触及了您问题中提到的所有操作,如果我错过了某些内容,请在评论中提问或更新您的问题