Разрешения, необходимые для запуска SQL Server Data Tools

 

Чтобы иметь возможность выполнять действия с базами данных в Visual Studio, необходимо выполнить вход в систему под учетной записью, обладающей определенными разрешениями на эту базу данных. Требуемые разрешения зависят от того, какое действие требуется выполнить. В следующих разделах описываются все действия, которые вам может потребоваться выполнить, и соответствующие разрешения, которые нужны для их выполнения.

  • Разрешения для создания и развертывания базы данных

  • Разрешения для рефакторинга базы данных

  • Разрешения для выполнения модульных тестов базы данных SQL Server

  • Разрешения для формирования данных

  • Разрешения для сравнения схем и данных

  • Разрешения для запуска редактора Transact-SQL

  • Разрешения для проектов SQL Server CLR (SQL CLR)

Разрешения для создания и развертывания базы данных

Для создания или развертывания базы данных необходимо иметь следующие разрешения.

Действия Необходимые разрешения
Импорт объектов и параметров базы данных Необходимо иметь возможность подключаться к базе данных-источнику.

Если база данных-источник основана на SQL Server 2005, вам также необходимо иметь разрешение VIEW DEFINITION для каждого объекта.

Если база данных-источник основана на SQL Server 2008 или более поздней версии, вам также необходимо иметь разрешение VIEW DEFINITION для каждого объекта. Ваше имя для входа должно иметь разрешение VIEW SERVER STATE (для ключей шифрования базы данных).
Импорт объектов и параметров сервера Необходимо иметь возможность подключаться к базе данных master на указанном сервере.

Если сервер работает под управлением SQL Server 2005, у вас должно быть разрешение VIEW ANY DEFINITION на этот сервер.

Если база данных-источник основана на SQL Server 2008 или более поздней версии, вам также необходимо иметь разрешение VIEW ANY DEFINITION на этот сервер. Ваше имя для входа должно иметь разрешение VIEW SERVER STATE (для ключей шифрования базы данных).
Создание или обновление проекта базы данных Для создания или изменения проекта базы данных не требуется каких-либо разрешений на базу данных.
Развертывание новой базы данных или развертывание с заданным параметром Всегда создавать базу данных повторно Вам нужно либо иметь разрешение CREATE DATABASE, либо быть членом роли dbcreator на целевом сервере.

При создании базы данных Visual Studio подключается к шаблону базы данных и копирует его содержимое. Первоначальное имя для входа (например, yourLogin), которое используется для подключения к целевой базе данных, должно иметь разрешения db_creator и CONNECT SQL. Это имя входа должно иметь сопоставление пользователя с шаблоном базы данных. При наличии разрешений sysadmin это сопоставление можно создать с помощью следующих инструкций Transact-SQL.

USE [model] CREATE USER yourUser FROM LOGIN yourLogin

Пользователь (в примере это yourUser) должен иметь разрешения CONNECT и VIEW DEFINITION на шаблон базы данных. При наличии разрешений sysadmin эти разрешения можно предоставить с помощью следующих инструкций Transact-SQL.

USE [model] GRANT CONNECT to yourUser GRANT VIEW DEFINITION TO yourUser

При развертывании базы данных, содержащей безымянные ограничения, когда параметр CheckNewContraints включен (а он включен по умолчанию), необходимо иметь разрешения db_owner или sysadmin. В противном случае развертывание завершится ошибкой. Это верно только для безымянных разрешений. Дополнительные сведения о параметре CheckNewConstraints см. в разделе Параметры проекта базы данных.
Развертывание обновлений в существующую базу данных Вы должны быть допустимым пользователем базы данных. Вам также нужно быть членом роли db_ddladmin, владеть схемой или объектами, которые требуется создать или изменить в целевой базе данных. Для работы в скриптах, выполняемых перед развертыванием и после него, с более сложными концепциями, например именами входа или связанными серверами, требуются дополнительные разрешения.

ПРИМЕЧАНИЕ.При развертывании в базе данных master вам также требуется разрешение VIEW ANY DEFINITION на сервер, куда выполняется развертывание.
Использование сборки с параметром EXTERNAL_ACCESS в проекте базы данных Вы должны задать свойство TRUSTWORTHY для проекта базы данных. Вы должны иметь разрешение EXTERNAL ACCESS ASSEMBLY для своего имени входа SQL Server.
Развертывание сборок в новую или существующую базу данных Необходимо быть членом предопределенной роли sysadmin на целевом сервере развертывания.

Дополнительные сведения см. в электронной документации SQL Server.

Разрешения для рефакторинга базы данных

Рефакторинг базы данных выполняется только в пределах проекта базы данных. Необходимо иметь разрешения на использование проекта базы данных. Разрешения на целевую базу данных потребуются только в тот момент, когда в нее будут развертываться внесенные изменения.

Разрешения для выполнения модульных тестов базы данных SQL Server

Для выполнения тестирований модулей базы данных необходимо иметь следующие разрешения.

Действия Необходимые разрешения
Выполнение теста Необходимо использовать подключение к базе данных в контексте выполнения. Дополнительные сведения см. в разделе Общие сведения о строках подключения и разрешениях.
Выполнение скрипта до или после развертывания Необходимо использовать подключение к базе данных в привилегированном контексте. Это подключение к базе данных имеет больше разрешений, чем подключение в контексте выполнения.
Выполнение скриптов TestInitialize и TestCleanup Необходимо использовать подключение к базе данных в привилегированном контексте.
Развертывание изменений базы данных до выполнения тестов Необходимо использовать подключение к базе данных в привилегированном контексте. Дополнительные сведения см. в статье Практическое руководство. Настройка запуска модульного теста SQL Server.
Формирование данных до выполнения тестов Необходимо использовать подключение к базе данных в привилегированном контексте. Дополнительные сведения см. в статье Практическое руководство. Настройка запуска модульного теста SQL Server.

Разрешения для формирования данных

Для формирования тестовых данных с помощью генератора данных у вас должны быть разрешения INSERT и SELECT на объекты из целевой базы данных. Если вы выполняете очистку данных перед формированием данных, вам также нужно иметь разрешения DELETE на объекты из целевой базы данных. Для сброса столбца IDENTITY в таблице вам нужно владеть таблицей или быть членом роли db_owner или db_ddladmin.

Разрешения для сравнения схем и данных

Для сравнения схем или данных необходимо иметь следующие разрешения.

Действия Необходимые разрешения
Сравнение схем двух баз данных Вам нужно иметь разрешения на импорт объектов и параметров из баз данных, описанные в разделе Разрешения на создание и развертывание базы данных.
Сравните схемы базы данных и проекта базы данных Вам нужно иметь разрешения на импорт объектов и параметров из базы данных, описанные в разделе Разрешения на создание и развертывание базы данных. У вас также должен быть открыт проект базы данных в Visual Studio.
Запись обновлений в целевую базу данных Вам нужно иметь разрешения на развертывание обновлений в целевой базе данных, описанные в разделе Разрешения на создание и развертывание базы данных.
Сравнение данных двух баз данных Кроме разрешений, которые требуются для сравнения схем двух баз данных, требуется также разрешение SELECT на все таблицы, сравнение которых намечено выполнить, и разрешение VIEW DATABASE STATE.

Дополнительные сведения см. в электронной документации SQL Server.

Разрешения для запуска редактора Transact-SQL

Действия, которые вы можете выполнить в редакторе Transact-SQL, определяются контекстом выполнения в целевой базе данных.

Разрешения для проектов SQL Server CLR

В следующей таблице приведены разрешения, которые требуются для развертывания или отладки проектов CLR.

Действия Необходимые разрешения
Развертывание (первоначальное или добавочное) сборки набора разрешений safe db_DDLAdmin ― это разрешение предоставляет разрешения CREATE и ALTER для разворачиваемых вами сборок и типов объектов

VIEW DEFINITION уровня базы данных ― требуется для выполнения развертывания

CONNECT уровня базы данных ― предоставляет возможность подключаться к базе данных
Развертывание сборки набора разрешений external_access db_DDLAdmin ― это разрешение предоставляет разрешения CREATE и ALTER для разворачиваемых вами сборок и типов объектов

VIEW DEFINITION уровня базы данных ― требуется для выполнения развертывания

CONNECT уровня базы данных ― предоставляет возможность подключаться к базе данных

Кроме того, также требуется:

чтобы параметр TRUSTWORTHY базы данных имел значение ON

Имя входа, которое используется для развертывания, должно иметь разрешение сервера External Access Assembly.
Развертывание сборки набора разрешений unsafe db_DDLAdmin ― это разрешение предоставляет разрешения CREATE и ALTER для разворачиваемых вами сборок и типов объектов

VIEW DEFINITION уровня базы данных ― требуется для выполнения развертывания

CONNECT уровня базы данных ― предоставляет возможность подключаться к базе данных

Кроме того, также требуется:

чтобы параметр TRUSTWORTHY базы данных имел значение ON

Имя входа, которое используется для развертывания, должно иметь разрешение сервера Unsafe Assembly.
Удаленная отладка сборки SQL CLR Вы должны иметь разрешение предопределенной роли sysadmin.

Важно!


Во всех случаях владелец сборки должен быть пользователем, который используется для развертывания сборки, либо ролью, членом которой является этот пользователь. Это требование также применяется к любым сборкам, на которые ссылается разворачиваемая вами сборка.

См. также

Создание и определение модульных тестов SQL Server
SQL Server Data Tools