Поделиться через


Разрешения, необходимые для функций баз данных в Visual Studio

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

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

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

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

  • Разрешения на создание данных

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

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

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

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

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

Действия

Необходимые разрешения

Импорт объектов и параметров баз данных

Необходимо иметь возможность подключиться к исходной базе данных.

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

  • Если исходная база данных основана на SQL Server 2008, необходимо быть владельцем или иметь разрешение VIEW DEFINITION на каждый объект. Для учетных данных должно быть задано разрешение VIEW SERVER STATE (для ключей шифрования базы данных).

Импорт объектов и параметров сервера

Необходима возможность подключения к базе данных на заданном сервере.

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

  • Если исходная база данных основана на SQL Server 2008, на сервере должно быть также разрешение VIEW ANY DEFINITION. Для учетных данных должно быть задано разрешение VIEW SERVER STATE (для ключей шифрования базы данных).

Создание или обновление проекта базы данных

Для создания или изменения проекта базы данных разрешения для базы данных не нужны.

Развертывание новой базы данных или развертывание с установленным параметром Всегда воссоздавать базу данных

Необходимо иметь разрешение CREATE DATABASE или быть участником роли dbcreator на целевом сервере.

При создании базы данных Visual Studio подключается к шаблону базы данных и копирует его содержимое. Для первоначальных учетных данных (например, Ваши_учетные_данные), которые использовались для подключения к целевой базе данных, должны быть заданы разрешения 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 2005 или электронной документации по SQL Server 2008.

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

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

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

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

Действия

Необходимые разрешения

Выполнение тестирования

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

Выполнение действий перед тестированием и после него

Необходимо использовать привилегированный контекст при подключении к базе данных. Это подключение к базе данных имеет больше разрешений чем, подключение с контекстом выполнения.

Выполнение скриптов TestInitialize и TestCleanup

Необходимо использовать привилегированный контекст при подключении к базе данных.

Развертывание изменений базы данных перед выполнением тестов

Необходимо использовать привилегированный контекст выполнения при подключении к базе данных. Дополнительные сведения см. в разделе Практическое руководство. Настройка выполнения модульного теста базы данных.

Создание данных перед выполнением тестов

Необходимо использовать подключение к базе данных с привилегированным контекстом. Дополнительные сведения см. в разделе Практическое руководство. Настройка выполнения модульного теста базы данных.

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

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

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

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

Действия

Необходимые разрешения

Сравнение схем двух баз данных

Необходимы разрешения на импорт объектов и параметров из баз данных, как описано в разделе Разрешения для создания или развертывания базы данных.

Сравнение схем базы данных и проекта базы данных

Необходимы разрешения на импорт объектов и параметров из базы данных, как описано в разделе Разрешения для создания или развертывания базы данных. Кроме того, в Visual Studio должен быть открыт проект базы данных.

Запись обновлений в целевую базу данных

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

Сравнение данных двух баз данных

В дополнение к разрешениям, необходимым для сравнения схем двух баз данных, также требуется разрешение SELECT на все сравниваемые таблицы.

Дополнительные сведения см. на этих страницах веб-сайта Майкрософт: Электронная документация по SQL Server 2008 или Электронная документация по SQL Server 2005.

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

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

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

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

Действия

Необходимые разрешения

Развертывание сборки (начальное или инкрементное) с безопасным набором разрешений

  • db_DDLAdmin — это разрешение дает права на выполнение команд CREATE и ALTER развертываемым сборкам и проектам

  • database-level VIEW DEFINITION — требуется для развертывания

  • database-level CONNECT — дает возможность подключения к базе данных

Развертывание сборки с набором разрешений external_access

  • db_DDLAdmin — это разрешение дает права на выполнение команд CREATE и ALTER развертываемым сборкам и проектам

  • database-level VIEW DEFINITION — требуется для развертывания

  • database-level CONNECT — дает возможность подключения к базе данных

Кроме того, необходимо иметь:

  • свойство базы данных TRUSTWORTHY в значении ON;

  • пользователь, который используется для развертывания, должен обладать разрешением сервера External Access Assembly.

Развертывание сборки небезопасным набором разрешений

  • db_DDLAdmin — это разрешение дает права на выполнение команд CREATE и ALTER развертываемым сборкам и проектам

  • database-level VIEW DEFINITION — требуется для развертывания

  • database-level CONNECT — дает возможность подключения к базе данных

Кроме того, необходимо иметь:

  • свойство базы данных TRUSTWORTHY в значении ON;

  • пользователь, который используется для развертывания, должен обладать разрешением сервера Unsafe Assembly.

Удаленная отладка сборки SQL CLR

Необходимо иметь разрешения фиксированной серверной роли sysadmin.

Важно!

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

См. также

Основные понятия

Создание баз данных и приложений уровня данных, а также управление ими в Visual Studio

Начало командной разработки баз данных