Использование аутентификации Azure Active Directory для аутентификации с помощью SQLUse Azure Active Directory Authentication for authentication with SQL

Аутентификация Azure Active Directory — это механизм подключения к службам База данных SQL Azure, Управляемый экземпляр и Хранилище данных SQL с помощью удостоверений в Azure Active Directory (Azure AD).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database, Managed Instance, and SQL Data Warehouse by using identities in Azure Active Directory (Azure AD).

Примечание

Этот раздел относится к Azure SQL Server, а также к базам данных SQL и хранилища данных SQL, создаваемым на сервере Azure SQL Server.This topic applies to Azure SQL server, and to both SQL Database and SQL Data Warehouse databases that are created on the Azure SQL server. Для простоты база данных SQL используется как для базы данных SQL, так и для хранилища данных SQL.For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

С помощью проверки подлинности Azure AD можно централизованно управлять удостоверениями пользователей базы данных и другими службами Майкрософт.With Azure AD authentication, you can centrally manage the identities of database users and other Microsoft services in one central location. Централизованное управление удостоверениями позволяет использовать единое расположение для управления пользователями и упрощает управление разрешениями.Central ID management provides a single place to manage database users and simplifies permission management. Это дает такие преимущества:Benefits include the following:

  • наличие альтернативного варианта проверки подлинности SQL Server;It provides an alternative to SQL Server authentication.
  • возможность остановить увеличение количества пользователей на серверах баз данных;Helps stop the proliferation of user identities across database servers.
  • возможность чередования паролей в одном расположении;Allows password rotation in a single place.
  • клиенты могут управлять разрешениями базы данных с помощью внешних групп (Azure AD);Customers can manage database permissions using external (Azure AD) groups.
  • возможность исключить хранение паролей с помощью встроенной проверки подлинности Windows и других видов проверки подлинности, поддерживаемых Azure Active Directory;It can eliminate storing passwords by enabling integrated Windows authentication and other forms of authentication supported by Azure Active Directory.
  • При проверке подлинности Azure AD используются данные пользователей автономной базы данных для проверки подлинности удостоверений на уровне базы данных.Azure AD authentication uses contained database users to authenticate identities at the database level.
  • Azure AD поддерживает проверку подлинности на основе маркеров для приложений, подключающихся к базе данных SQL.Azure AD supports token-based authentication for applications connecting to SQL Database.
  • Azure AD поддерживает проверку подлинности с использованием AD FS (федерация доменов) или собственную проверку подлинности с помощью имени пользователя и пароля для локального каталога Azure Active Directory без синхронизации домена.Azure AD authentication supports ADFS (domain federation) or native user/password authentication for a local Azure Active Directory without domain synchronization.
  • Azure AD поддерживает подключения из SQL Server Management Studio, использующие универсальную проверку подлинности Active Directory, в том числе Многофакторную идентификацию (MFA).Azure AD supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes Multi-Factor Authentication (MFA). MFA обеспечивает надежную аутентификацию с использованием ряда простых вариантов проверки посредством телефонного звонка, текстового сообщения, смарт-карты с ПИН-кодом или уведомления в мобильном приложении.MFA includes strong authentication with a range of easy verification options — phone call, text message, smart cards with pin, or mobile app notification. Дополнительные сведения см. в разделе Поддержка SSMS в Azure AD MFA для базы данных SQL и хранилища данных SQL.For more information, see SSMS support for Azure AD MFA with SQL Database and SQL Data Warehouse.
  • Azure AD поддерживает аналогичные подключения из SQL Server Data Tools (SSDT), использующие интерактивную аутентификацию Active Directory.Azure AD supports similar connections from SQL Server Data Tools (SSDT) that use Active Directory Interactive Authentication. Дополнительные сведения см. в статье Поддержка Azure Active Directory в SQL Server Data Tools (SSDT).For more information, see Azure Active Directory support in SQL Server Data Tools (SSDT).

Примечание

Подключение к SQL Server на виртуальной машине Azure с использованием учетной записи Azure Active Directory не поддерживается.Connecting to SQL Server running on an Azure VM is not supported using an Azure Active Directory account. Вместо этого используйте учетную запись домена Active Directory.Use a domain Active Directory account instead.

Для настройки и использования проверки подлинности Azure Active Directory выполните следующие действия.The configuration steps include the following procedures to configure and use Azure Active Directory authentication.

  1. Создайте и заполните каталог Azure AD.Create and populate Azure AD.
  2. Свяжите или измените каталог Active Directory, который сейчас связан с вашей подпиской Azure (этот шаг можно пропустить).Optional: Associate or change the active directory that is currently associated with your Azure Subscription.
  3. Создайте учетную запись администратора Azure Active Directory для сервера Базы данных SQL Azure, управляемого экземпляра или хранилища данных SQL Azure.Create an Azure Active Directory administrator for the Azure SQL Database server, the Managed Instance, or the Azure SQL Data Warehouse.
  4. Настройте клиентские компьютеры.Configure your client computers.
  5. Создайте учетные записи пользователей автономной базы данных в базе данных, сопоставленной с удостоверениями Azure AD.Create contained database users in your database mapped to Azure AD identities.
  6. Подключитесь к базе данных с помощью удостоверений Azure AD.Connect to your database by using Azure AD identities.

Примечание

Сведения о создании и заполнении каталога Azure AD, а также настройке Azure AD с помощью Базы данных SQL Azure, управляемого экземпляра и хранилища данных SQL см. в статье Настройка аутентификации Azure Active Directory и управление ею с использованием Базы данных SQL или хранилища данных SQL.To learn how to create and populate Azure AD, and then configure Azure AD with Azure SQL Database, Managed Instance, and SQL Data Warehouse, see Configure Azure AD with Azure SQL Database.

Архитектура доверияTrust architecture

На следующей общей схеме представлена архитектура решения, в котором используется аутентификация Azure AD для базы данных SQL Azure.The following high-level diagram summarizes the solution architecture of using Azure AD authentication with Azure SQL Database. Та же концепция применяется к хранилищу данных SQL.The same concepts apply to SQL Data Warehouse. Для поддержки собственной проверки подлинности Azure AD с использованием пароля пользователя учитывается только облачная часть, база данных SQL Azure и Azure AD.To support Azure AD native user password, only the Cloud portion and Azure AD/Azure SQL Database is considered. Для поддержки федеративной проверки подлинности (или имени пользователя и пароля в качестве учетных данных Windows) требуется взаимодействие с блоком ADFS.To support Federated authentication (or user/password for Windows credentials), the communication with ADFS block is required. Стрелки обозначают пути обмена данными.The arrows indicate communication pathways.

схема проверки подлинности aad

На следующей схеме показаны федерация, отношения доверия и отношения размещения. Все эти компоненты позволяют клиенту подключиться к базе данных, отправив маркер.The following diagram indicates the federation, trust, and hosting relationships that allow a client to connect to a database by submitting a token. Маркер проходит аутентификацию в Azure AD и становится доверенным для базы данных.The token is authenticated by an Azure AD, and is trusted by the database. Клиент 1 может представлять каталог Azure AD с собственными пользователями или федеративными пользователями.Customer 1 can represent an Azure Active Directory with native users or an Azure AD with federated users. Клиент 2 представляет возможное решение, включая импортированных пользователей. В этом примере пользователи импортированы из федеративной службы Azure Active Directory, при этом службы ADFS синхронизированы с Azure Active Directory.Customer 2 represents a possible solution including imported users; in this example coming from a federated Azure Active Directory with ADFS being synchronized with Azure Active Directory. Важно понимать, что для доступа к базе данных с использованием проверки подлинности Azure AD необходимо связать подписку размещения с Azure AD.It's important to understand that access to a database using Azure AD authentication requires that the hosting subscription is associated to the Azure AD. Эту же подписку нужно использовать для создания сервера SQL Server для размещения базы данных SQL Azure или хранилища данных SQL.The same subscription must be used to create the SQL Server hosting the Azure SQL Database or SQL Data Warehouse.

отношение подписки

Структура администраторовAdministrator structure

При использовании аутентификации Azure AD существуют две учетные записи администратора сервера Базы данных SQL и управляемого экземпляра: учетная запись первоначального администратора сервера SQL Server и учетная запись администратора Azure AD.When using Azure AD authentication, there are two Administrator accounts for the SQL Database server and Managed Instance; the original SQL Server administrator and the Azure AD administrator. Та же концепция применяется к хранилищу данных SQL.The same concepts apply to SQL Data Warehouse. Создать в пользовательской базе данных первого пользователя автономной базы данных Azure AD может только администратор с учетной записью Azure AD.Only the administrator based on an Azure AD account can create the first Azure AD contained database user in a user database. Администратор Azure AD может использовать для входа имя пользователя Azure AD или имя группы Azure AD.The Azure AD administrator login can be an Azure AD user or an Azure AD group. Если учетная запись администратора является учетной записью группы, ее может использовать любой участник группы. По этой причине для одного экземпляра SQL Server может существовать несколько администраторов Azure AD.When the administrator is a group account, it can be used by any group member, enabling multiple Azure AD administrators for the SQL Server instance. Использование учетной записи группы в качестве учетной записи администратора повышает управляемость. Это позволяет централизованно добавлять и удалять членов группы в Azure AD, не изменяя пользователей или разрешения в базе данных SQL.Using group account as an administrator enhances manageability by allowing you to centrally add and remove group members in Azure AD without changing the users or permissions in SQL Database. За один раз можно настроить только одного администратора Azure AD (пользователя или группу).Only one Azure AD administrator (a user or group) can be configured at any time.

структура администраторов

РазрешенияPermissions

Чтобы создавать новых пользователей, у вас должно быть разрешение ALTER ANY USER в базе данных.To create new users, you must have the ALTER ANY USER permission in the database. Разрешение ALTER ANY USER можно предоставить любому пользователю базы данных.The ALTER ANY USER permission can be granted to any database user. Разрешение ALTER ANY USER также предоставляется учетным записям администратора сервера и пользователям базы данных с разрешениями CONTROL ON DATABASE или ALTER ON DATABASE для этой базы данных, а также участникам роли db_owner в базе данных.The ALTER ANY USER permission is also held by the server administrator accounts, and database users with the CONTROL ON DATABASE or ALTER ON DATABASE permission for that database, and by members of the db_owner database role.

Чтобы создать учетную запись пользователя автономной базы данных в Базе данных SQL Azure, управляемом экземпляре или хранилище данных SQL, необходимо подключиться к базе данных или экземпляру с помощью удостоверения Azure AD.To create a contained database user in Azure SQL Database, Managed Instance, or SQL Data Warehouse, you must connect to the database or instance using an Azure AD identity. Чтобы создать первого пользователя автономной базы данных, необходимо подключиться к ней с использованием учетной записи администратора Azure AD (который является владельцем базы данных).To create the first contained database user, you must connect to the database by using an Azure AD administrator (who is the owner of the database). Это показано в статье Настройка аутентификации Azure Active Directory и управление ею с использованием базы данных SQL или хранилища данных SQL.This is demonstrated in Configure and manage Azure Active Directory authentication with SQL Database or SQL Data Warehouse. Проверка подлинности Azure AD любого типа возможна только в том случае, если для базы данных SQL Azure или сервера хранилища данных SQL создана учетная запись администратора Azure AD.Any Azure AD authentication is only possible if the Azure AD admin was created for Azure SQL Database or SQL Data Warehouse server. Если учетная запись администратора Azure Active Directory удалена с сервера, то существующие пользователи Azure Active Directory, учетные записи которых были созданы ранее на сервере SQL Server, больше не смогут подключаться к базе данных, используя свои текущие учетные данные Azure Active Directory.If the Azure Active Directory admin was removed from the server, existing Azure Active Directory users created previously inside SQL Server can no longer connect to the database using their Azure Active Directory credentials.

Функции и ограничения Azure ADAzure AD features and limitations

  • На сервере Azure SQL Server или в хранилище данных SQL можно выполнить подготовку для следующих членов Azure AD.The following members of Azure AD can be provisioned in Azure SQL server or SQL Data Warehouse:

    • Собственные члены — члены, созданные в Azure AD в управляемом домене или в домене клиента.Native members: A member created in Azure AD in the managed domain or in a customer domain. Дополнительные сведения см. в статье Добавление имени личного домена в Azure Active Directory.For more information, see Add your own domain name to Azure AD.
    • Федеративные члены домена — члены, созданные в Azure AD с федеративным доменом.Federated domain members: A member created in Azure AD with a federated domain. Дополнительные сведения см. в статье Microsoft Azure now supports federation with Windows Server Active Directory (Microsoft Azure теперь поддерживает федерацию с Windows Server Active Directory).For more information, see Microsoft Azure now supports federation with Windows Server Active Directory.
    • Импортированные члены из других каталогов Azure AD, являющиеся собственными или федеративными членами домена.Imported members from other Azure AD's who are native or federated domain members.
    • Группы Active Directory, созданные как группы безопасности.Active Directory groups created as security groups.
  • Пользователи Azure AD, которые входят в группу с ролью сервера db_owner, не могут использовать синтаксис CREATE DATABASE SCOPED CREDENTIAL для Базы данных SQL Azure и Хранилища данных SQL Azure.Azure AD users that are part of a group that has db_owner server role cannot use the CREATE DATABASE SCOPED CREDENTIAL syntax against Azure SQL Database and Azure SQL Data Warehouse. Отобразится следующая ошибка:You will see the following error:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.

    Предоставляйте роль db_owner напрямую отдельным пользователям Azure AD во избежание проблем с синтаксисом CREATE DATABASE SCOPED CREDENTIAL.Grant the db_owner role directly to the individual Azure AD user to mitigate the CREATE DATABASE SCOPED CREDENTIAL issue.

  • Эти системные функции возвращают значения NULL при выполнении с помощью субъектов Azure AD:These system functions return NULL values when executed under Azure AD principals:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

Управляемые экземплярыManaged Instances

  • Субъекты сервера (имена для входа) и пользователи Azure AD поддерживаются в Управляемых экземплярах в качестве предварительной версии функции.Azure AD server principals (logins) and users are supported as a preview feature for Managed Instances.
  • Параметр субъектов сервера (имена для входа) Azure AD, сопоставленный с группой Azure AD в качестве владельца базы данных, не поддерживается в Управляемых экземплярах.Setting Azure AD server principals (logins) mapped to an Azure AD group as database owner is not supported in Managed Instances.
    • Кроме этого, при добавлении группы как части роли сервера dbcreator пользователи этой группы могут подключаться к Управляемому экземпляру и создавать базы данных, но не могут получить доступ к базе данных.An extension of this is that when a group is added as part of the dbcreator server role, users from this group can connect to the Managed Instance and create new databases, but will not be able to access the database. Это происходит, так как новый владелец базы данных является системным администратором, а не пользователем Azure AD.This is because the new database owner is SA, and not the Azure AD user. Эта проблема не проявляется при добавлении роли сервера dbcreator для отдельного пользователя.This issue does not manifest if the individual user is added to the dbcreator server role.
  • Субъекты сервера (имена для входа) Azure AD поддерживают выполнение заданий и управление агентом SQL Server.SQL Agent management and jobs execution is supported for Azure AD server principals (logins).
  • Операции резервного копирования и восстановления базы данных могут быть выполнены с помощью субъектов сервера (имен для входа) Azure AD.Database backup and restore operations can be executed by Azure AD server principals (logins).
  • Поддерживается аудит всех инструкций, связанных с субъектами сервера (именами для входа) Azure AD и событиями проверки подлинности.Auditing of all statements related to Azure AD server principals (logins) and authentication events is supported.
  • Поддерживается выделенное административное соединение для субъектов сервера (имен для входа) Azure AD, которые являются участниками роли сервера системного администратора.Dedicated administrator connection for Azure AD server principals (logins) which are members of sysadmin server role is supported.
    • Поддерживается с помощью служебной программы SQLCMD и SQL Server Management Studio.Supported through SQLCMD Utility and SQL Server Management Studio.
  • Триггеры входа поддерживаются для событий входа, поступающих от субъектов сервера (имен для входа) Azure AD.Logon triggers are supported for logon events coming from Azure AD server principals (logins).
  • С помощью субъектов сервера (имен для входа) Azure AD можно настроить почту Service Broker и базы данных.Service Broker and DB mail can be setup using an Azure AD server principal (login).

Подключение с использованием удостоверений Azure ADConnecting using Azure AD identities

Проверка подлинности Azure Active Directory поддерживает следующие способы подключения к базе данных с помощью удостоверений Azure AD:Azure Active Directory authentication supports the following methods of connecting to a database using Azure AD identities:

  • Пароль Azure Active Directory.Azure Active Directory Password
  • Встроенная служба Azure Active Directory.Azure Active Directory Integrated
  • Универсальная служба Azure Active Directory с поддержкой MFA.Azure Active Directory Universal with MFA
  • Использование маркера проверки подлинности приложенияUsing Application token authentication

Для субъектов сервера (имен для входа) Azure AD поддерживаются следующие методы проверки подлинности (общедоступная предварительная версия):The following authentication methods are supported for Azure AD server principals (logins) (public preview):

  • Пароль Azure Active Directory.Azure Active Directory Password
  • Встроенная служба Azure Active Directory.Azure Active Directory Integrated
  • Универсальная служба Azure Active Directory с поддержкой MFA.Azure Active Directory Universal with MFA

Дополнительные замечанияAdditional considerations

  • Для повышения управляемости рекомендуем подготовить специальную группу Azure AD от имени администратора.To enhance manageability, we recommend you provision a dedicated Azure AD group as an administrator.
  • За один раз можно настроить только одну учетную запись администратора Azure AD (пользователя или группу) для сервера Базы данных SQL Azure или Хранилища данных SQL Azure.Only one Azure AD administrator (a user or group) can be configured for an Azure SQL Database server or Azure SQL Data Warehouse at any time.
    • Добавление субъектов сервера (имен для входа) Azure AD для Управляемых экземпляров (общедоступной предварительной версии) позволяет создавать несколько субъектов сервера (имен для входа) Azure AD, которые можно добавить для роли sysadmin.The addition of Azure AD server principals (logins) for Managed Instances (public preview) allows the possibility of creating multiple Azure AD server principals (logins) that can be added to the sysadmin role.
  • Изначально только администратор Azure AD для SQL Server может подключаться к серверу Базы данных SQL Azure, Управляемому экземпляру или Хранилищу данных SQL Azure, используя учетную запись Azure Active Directory.Only an Azure AD administrator for SQL Server can initially connect to the Azure SQL Database server, Managed Instance, or Azure SQL Data Warehouse using an Azure Active Directory account. Затем администратор Active Directory может настроить других пользователей базы данных Azure AD.The Active Directory administrator can configure subsequent Azure AD database users.
  • Мы рекомендуем установить время ожидания подключения в 30 секунд.We recommend setting the connection timeout to 30 seconds.
  • Проверку подлинности Azure Active Directory поддерживают SQL Server 2016 Management Studio и SQL Server Data Tools для Visual Studio 2015 (версии 14.0.60311.1, выпущенной в апреле 2016 г., или более поздней).SQL Server 2016 Management Studio and SQL Server Data Tools for Visual Studio 2015 (version 14.0.60311.1April 2016 or later) support Azure Active Directory authentication. (Проверку подлинности Azure AD поддерживает поставщик данных .NET Framework для SQL Server, требуется версия .NET Framework не ниже 4.6.)(Azure AD authentication is supported by the .NET Framework Data Provider for SqlServer; at least version .NET Framework 4.6). Поэтому для последних версий этих инструментов и приложений уровня данных (DAC и BACPAC-файлов) можно применять аутентификацию Azure AD.Therefore the newest versions of these tools and data-tier applications (DAC and .BACPAC) can use Azure AD authentication.
  • Начиная с версии 15.0.1, служебные программыSQLCMD и BCP поддерживают интерактивную аутентификацию Active Directory с возможностью MFA.Beginning with version 15.0.1, sqlcmd utility and bcp utility support Active Directory Interactive authentication with MFA.
  • Для SQL Server Data Tools для Visual Studio 2015 требуется версия Data Tools, выпущенная в апреле 2016 г. (14.0.60311.1), или более поздняя.SQL Server Data Tools for Visual Studio 2015 requires at least the April 2016 version of the Data Tools (version 14.0.60311.1). Сейчас пользователи Azure AD не отображаются в обозревателе объектов SSDT.Currently Azure AD users are not shown in SSDT Object Explorer. Сведения о пользователях можно просмотреть в файле sys.database_principals.As a workaround, view the users in sys.database_principals.  
  • Драйвер Microsoft JDBC 6.0 для SQL Server поддерживает проверку подлинности Azure AD.Microsoft JDBC Driver 6.0 for SQL Server supports Azure AD authentication. Вы можете также ознакомиться с настройкой свойств подключения.Also, see Setting the Connection Properties.
  • PolyBase не поддерживает проверку подлинности Azure AD.PolyBase cannot authenticate by using Azure AD authentication.  
  • База данных SQL поддерживает проверку подлинности Azure AD на портале Azure. Для этого используются колонки Импорт базы данных и Экспорт базы данных.Azure AD authentication is supported for SQL Database by the Azure portal Import Database and Export Database blades. Импорт и экспорт с использованием проверки подлинности Azure AD также можно выполнить с помощью команды PowerShell.Import and export using Azure AD authentication is also supported from the PowerShell command.
  • Аутентификация Azure AD для базы данных SQL, управляемого экземпляра и хранилища данных SQL поддерживается с помощью интерфейса командной строки.Azure AD authentication is supported for SQL Database, Managed Instance, and SQL Data Warehouse by use CLI. Сведения о настройке и управлении Azure AD см. в статьях Настройка аутентификации Azure Active Directory и управление ею с использованием базы данных SQL или хранилища данных SQL и SQL Server - az sql server.For more information, see Configure and manage Azure Active Directory authentication with SQL Database or SQL Data Warehouse and SQL Server - az sql server.

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