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

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

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

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

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

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

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

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

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

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

USE [model] CREATE USER yourUser FROM LOGIN yourLogin

Пользователь (в примере это yourUser) должен иметь разрешения CONNECT и VIEW DEFINITION на шаблон базы данных. При наличии разрешений системного администратора эти разрешения можно предоставить с помощью следующих инструкций 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 для проекта базы данных. У вас должно быть разрешение на сборку внешнего доступа для своих учетных данных 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