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


Добавление подключения к базе данных SQL Azure

С помощью подключенных служб Visual Studio можно подключиться к базе данных SQL Azure, локальному эмулятору (например, во время разработки) или локальной базе данных SQL Server. Сведения о локальном SQL Server см. в статье Подключение к базе данных.

С помощью Visual Studio можно подключиться из любого из следующих типов проектов с помощью функции подключенных служб:

  • ASP.NET Core
  • .NET Core (включая консольное приложение, WPF, Windows Forms, библиотеку классов)
  • Рабочая роль .NET Core
  • Функции Azure
  • Консольное приложение .NET Framework
  • ASP.NET Model-View-Controller (MVC) (.NET Framework)
  • Приложение универсальной платформы Windows

Функция подключенной службы добавляет все необходимые ссылки и код подключения в проект и изменяет файлы конфигурации соответствующим образом.

Необходимые условия

Подключение к базе данных SQL Azure с помощью подключенных служб

  1. Откройте проект в Visual Studio.

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

    снимок экрана с параметрами контекстного меню

    Если вы не видите узел Connected Services, выберите Project>Connected Services>Add.

  3. Выберите базу данных SQL Server . Появится страница подключения к зависимости . Вы увидите несколько вариантов:

    • SQL Server Express LocalDB, встроенное решение SQL Database, устанавливаемое вместе с Visual Studio
    • База данных SQL Server на локальном контейнере на компьютере
    • База данных SQL Server, локальная среда SQL Server в локальной сети
    • База данных SQL Azure для базы данных SQL, работающей в качестве службы Azure

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

    снимок экрана: выбор базы данных SQL.

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

  4. На экране Настройка базы данных SQL Azure выберите существующую базу данных SQL Azure и нажмите кнопку Далее.

    Если вам нужно создать новый компонент, перейдите к следующему шагу. В противном случае перейдите к шагу 7.

    снимок экрана: экран

  5. Чтобы создать базу данных SQL Azure, выполните приведенные действия.

    1. Выберите Создать новое у зеленого знака плюса.

    2. Заполните форму Azure SQL Database: Создание нового экрана и выберите Создать.

      снимок экрана:

    3. При отображении экрана настройки базы данных SQL Azure новая база данных появится в списке. Выберите новую базу данных в списке и выберите Далее.

  6. Введите имя строки подключения или выберите значение по умолчанию, а затем выберите Дополнительные Параметры.

    Скриншот экрана с указанием строки подключения.

    Заметка

    В Visual Studio 2022 версии 17.12 и более поздних версиях эта процедура использует управляемое удостоверение Microsoft Entra, метод проверки подлинности без пароля для подключения к базе данных. Предупреждение на этом экране означает, что после выполнения этой процедуры в Visual Studio необходимо выполнить ручной шаг на портале Azure. См. проверку подлинности Microsoft Entra.

  7. Выберите, требуется ли строка подключения, хранящаяся в файле локальных секретов или в Azure Key Vault, а затем нажмите кнопку Далее.

    снимок экрана, показывающий параметры хранения строки подключения к базе данных SQL Azure.

  8. На экране сводка изменений отображаются все изменения, которые будут внесены в проект при завершении процесса. Если изменения выглядят ОК, нажмите кнопку Готово.

    снимок экрана с разделом

    Если появится запрос на настройку правил брандмауэра, выберите Да.

    снимок экрана с правилами брандмауэра.

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

    снимок экрана с разделом

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

  10. Если вы используете управляемое удостоверение (Visual Studio 17.12 и более поздние версии), см. следующий раздел, чтобы настроить пользователя управляемого удостоверения в базе данных SQL Azure.

Проверка подлинности Microsoft Entra

При использовании Visual Studio 2022 версии 17.12 и более поздних версий процедура подключенных служб использует проверку подлинности Microsoft Entra, которая является самым безопасным методом проверки подлинности. Однако Visual Studio не создает пользователя администратора Microsoft Entra в базе данных SQL Azure автоматически. Если у пользователя администратора Microsoft Entra нет, подключение не пройдет проверку подлинности.

Вы можете использовать портал Azure, PowerShell или Azure CLI для создания пользователя администратора Microsoft Entra. Подробные инструкции по каждому из этих методов см. раздел Настройка пользователя администратора Microsoft Entra.

После завершения процесса подключенных служб необходимо создать пользователя SQL, соответствующего управляемому удостоверению, и задать разрешения, выполнив инструкции SQL в базе данных. Войдите в редактор запросов на портале Azure в качестве пользователя администратора Microsoft Entra и выполните следующие инструкции:

CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];

GO

<identity-name> — это имя управляемого удостоверения в Microsoft Entra ID. Если удостоверение назначено системой, имя всегда совпадает с именем вашего приложения App Service. Для слота развертывания имя системно назначаемого удостоверения — <app-name>/slots/<slot-name>. Чтобы предоставить разрешения для группы Microsoft Entra, используйте отображаемое имя группы (например, myAzureSQLDBAccessGroup). См. типы управляемых удостоверений и управляемые удостоверения в Microsoft Entra для Azure SQL. Добавляемые роли зависят от вариантов использования. См. ALTER ROLE.

Если код ссылается на System.Data.SqlClient, необходимо обновить до Microsoft.Data.SqlClient, так как System.Data.SqlClient не поддерживает проверку подлинности Microsoft Entra. Чтобы обновить, добавьте ссылку на пакет NuGet Microsoft.Data.SqlClient и обновите все директивы using, ссылающиеся на System.Data.SqlClient для ссылки на пространство имен Microsoft.Data.SqlClient. Есть некоторые изменения в поведении; см. памятку по переносу .

  1. Откройте проект в Visual Studio.

  2. В Обозреватель решенийщелкните правой кнопкой мыши на узле Подключенные службы и в контекстном меню выберите Добавить чтобы открыть меню доступных служб.

    снимок экрана с параметрами контекстного меню

    Если раздел подключенных служб не отображается, выберите Project>Connected Services>Добавить.

  3. Выберите базу данных SQL Server. Появляется страница Подключение к зависимости. Вы увидите несколько вариантов:

    • SQL Server Express LocalDB, встроенное решение базы данных SQL, устанавливаемое с Visual Studio
    • База данных SQL Server на локальном контейнере на компьютере
    • База данных SQL Server, локальная среда SQL Server в локальной сети
    • База данных SQL Azure для базы данных SQL, работающей в качестве службы Azure

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

    снимок экрана: выбор базы данных SQL.

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

  4. На экране Настройка базы данных SQL Azure выберите существующую базу данных SQL Azure и нажмите кнопку Далее.

    Если вам нужно создать новый компонент, перейдите к следующему шагу. В противном случае перейдите к шагу 7.

    снимок экрана: экран

  5. Чтобы создать базу данных SQL Azure, выполните приведенные действия.

    1. Выберите Создать новое с зеленым значком плюс.

    2. Заполните базу данных SQL Azure: создайте новый экран и выберите Создать.

      снимок экрана:

    3. При отображении экрана настройки базы данных SQL Azure новая база данных появится в списке. Выберите новую базу данных в списке и выберите Далее.

  6. Введите имя строки подключения или выберите значение по умолчанию, и решите, хранить строку подключения в локальном файле секретов или в Azure Key Vault.

    снимок экрана, показывающий экран

  7. Экран "Сводка изменений" показывает все изменения, которые будут внесены в проект, если вы завершите процесс. Если изменения выглядят ОК, нажмите кнопку Готово.

    снимок экрана с разделом

    Если появится запрос на настройку правил брандмауэра, выберите Да.

    снимок экрана с правилами брандмауэра.

  8. В Обозревателе решений дважды щелкните узел Подключенные службы, чтобы открыть вкладку Подключенные службы. Подключение отображается в разделе Зависимости службы:

    снимок экрана раздела

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

Доступ к строке подключения

Узнайте, как безопасно хранить секреты, следуя безопасному хранилищу секретов приложений в разработке в ASP.NET Core. В частности, чтобы прочитать строку подключения из хранилища секретов, можно добавить код, как показано в примере , используя API конфигурации для чтения секрета. См. также внедрение зависимостей в ASP.NET Core.

Миграции Entity Framework

Это может быть удобно для работы с локальным хранилищем данных во время ранней разработки, но с Entity Framework Core, когда вы будете готовы перейти в облако, вы можете использовать поддержку Visual Studio для миграции Entity Framework для перемещения базы данных или слияния изменений с удаленным хранилищем данных. См. обзор миграции в.

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

снимок экрана: команды миграции.

Команды доступны для создания новых миграций, их непосредственного применения или создания скриптов SQL, которые применяют миграцию.

Добавление миграции

При изменении модели данных можно использовать средства Entity Framework Core для добавления соответствующей миграции, описывающей в коде обновления, необходимые для синхронизации схемы базы данных. Entity Framework Core сравнивает текущую модель с моментальным снимком старой модели, чтобы определить различия и создать исходные файлы миграции. Файлы добавляются в ваш проект обычно в папку с именем Миграции и могут быть отслежены в системе управления версиями вашего проекта, как и любой другой исходный файл.

При выборе этого параметра вам будет предложено указать имя класса контекста, представляющее схему базы данных, которую требуется перенести.

снимок экрана: добавление миграции Entity Framework.

Обновление базы данных

После создания миграции её можно применить к базе данных. Entity Framework обновляет базу данных и схему с изменениями, указанными в коде миграции. При выборе этого параметра вам будет предложено указать имя класса контекста, представляющее схему базы данных, которую требуется перенести.

Создание скрипта SQL

Рекомендуемый способ развертывания миграции в рабочую базу данных — создание скриптов SQL. К преимуществам этой стратегии относятся следующие преимущества:

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

При использовании этого параметра вам будет предложено класс контекста базы данных и расположение файла скрипта.

снимок экрана: параметр

Открыть в обозревателе объектов SQL Server

Для удобства эта команда позволяет перейти в обозреватель объектов SQL Server, чтобы просматривать таблицы и другие сущности базы данных и работать непосредственно с данными. См. обозревателя объектов.

снимок экрана с обозревателем объектов SQL Server.

Дальнейшие действия

Вы можете продолжить работу с краткими руководствами для базы данных SQL Azure, но вместо начала можно начать после настройки первоначального подключения. Если вы используете Entity Framework, вы можете начать с Добавить код для подключения к базе данных SQL Azure. Если вы используете классы данных SqlClient или ADO.NET, можно начать добавить код для подключения к базе данных SQL Azure.

Ваш код не будет точно соответствовать тому, что используется в быстром запуске, где применяют другой способ получения строки подключения. Строки подключения являются секретами — их безопасное хранение обеспечивается, как описано в безопасное хранение секретов приложений в разработке в ASP.NET Core. В частности, чтобы прочитать строку подключения из хранилища секретов, можно добавить код, как в прочитать секрет с помощью API конфигурации.

В проектах ASP.NET Core параметр подключения или строка подключения, созданная подключенными службами, доступна в объекте конфигурации. К нему можно получить доступ по свойству класса WebApplicationBuilder (builder во многих шаблонах проектов), как показано в следующем примере:

var connection = builder.Configuration["ConnectionStrings:DatabaseConnection"];

Строка, предоставляемая свойству Configuration, должна соответствовать ключу в secrets.json или в Azure Key Vault, который вы указали в процедуре подключенных служб. Например, при использовании Visual Studio 2022 17.12 и более поздних версий параметр подключения хранится в secrets.json как:

{
  "ConnectionStrings:DatabaseConnection": "Server=tcp:webapplication16dbserver.database.windows.net;Authentication=Active Directory Default;Database=WebApplication16_db;",
}

В проектах ASP.NET Core параметр подключения или строка подключения, созданная подключенными службами, доступна в объекте конфигурации. К нему можно получить доступ по свойству класса WebApplicationBuilder (builder во многих шаблонах проектов), как показано в следующем примере:

var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];