Проверка подлинности в базе данных SQL в Microsoft Fabric
Применимо к:✅базе данных SQL в Microsoft Fabric
В этой статье описывается проверка подлинности для баз данных SQL.
Как и другие типы элементов Microsoft Fabric, базы данных SQL используют проверку подлинности Microsoft Entra.
Чтобы успешно пройти проверку подлинности в базе данных SQL, пользователь Microsoft Entra, субъект-служба или их группа, должен иметь разрешение на чтение элемента для базы данных в Fabric. Сведения о предоставлении удостоверению Microsoft Entra к рабочей области Fabric или определенной базе данных см. в разделе "Элементы управления доступом Fabric".
Чтобы найти строка подключения в базе данных SQL в Fabric, см. статью "Подключение к базе данных SQL в Microsoft Fabric".
Примечание.
Чтобы субъекты-службы могли подключаться к Структурам и базам данных SQL, также необходимо включить параметр клиента API Fabric. Сведения о включении параметров клиента см. в разделе "Параметры клиента Fabric".
Подключение к базе данных SQL с помощью проверки подлинности Microsoft Entra
Вы можете подключиться к базе данных с помощью проверки подлинности Microsoft Entra с помощью:
- Средства SQL, поддерживающие проверку подлинности Microsoft Entra, включая SQL Server Management Studio и расширение mssql с помощью Visual Studio Code.
- Приложения, использующие драйверы клиентов SQL, поддерживающие проверку подлинности Microsoft Entra, включая SqlClient, JDBC, ODBC и OLE DB.
Приложения и средства должны обновить драйверы до версий, поддерживающих проверку подлинности Microsoft Entra, и добавить ключевое слово режима проверки подлинности в строка подключения SQL, например ActiveDirectoryInteractive
, ActiveDirectoryServicePrincipal
или ActiveDirectoryPassword
.
Создание пользователей базы данных для удостоверений Microsoft Entra
Если вы планируете настроить элементы управления доступом SQL с помощью Transact-SQL, сначала необходимо создать пользователей базы данных, соответствующих удостоверениям Microsoft Entra — пользователям, субъектам-службам или их группам — с помощью CREATE USER (Transact-SQL).
Создание пользователей базы данных не требуется, если вы используете элементы управления доступом Fabric (роли рабочей области или разрешения элемента). При управлении ролями уровня базы данных SQL на портале Fabric не требуется создавать пользователей. При необходимости портал автоматически создает пользователей.
Создание пользователей базы данных при подключении как пользователя Microsoft Entra
При подключении к базе данных в качестве пользователя Microsoft Entra следует использовать CREATE USER
предложение FROM EXTERNAL PROVIDER для создания пользователей для субъектов Microsoft Entra. FROM EXTERNAL PROVIDER
проверяет указанное имя субъекта с помощью Microsoft Entra, извлекает идентификатор субъекта (идентификатор объекта пользователя или группы, идентификатор приложения или идентификатор клиента) и сохраняет идентификатор в качестве идентификатора безопасности пользователя в метаданных SQL. При использовании FROM EXTERNAL PROVIDER
предложения необходимо быть членом роли читателей каталогов в Microsoft Entra. В следующем примере скриптов T-SQL используется FROM EXTERNAL PROVIDER
для создания пользователя на основе пользователя Microsoft Entra, субъекта-службы в Microsoft Entra или группы в Microsoft Entra.
-- Create a user for a Microsoft Entra user
CREATE USER [alice@contoso.com] FROM EXTERNAL PROVIDER;
-- Create a user for a service principal in Microsoft Entra
CREATE USER [HRApp] FROM EXTERNAL PROVIDER;
-- Create a user for a group in Microsoft Entra
CREATE USER [HR] FROM EXTERNAL PROVIDER;
Создание пользователей базы данных при подключении в качестве субъекта-службы Microsoft Entra
Если приложение подключено к базе данных с субъектом-службой, приложение должно выдавать CREATE USER
предложения SID и TYPE для создания пользователей для субъектов Microsoft Entra. Указанное имя субъекта не проверяется в Microsoft Entra. Это ответственность за приложение (разработчик приложения) для предоставления допустимого имени и допустимого идентификатора безопасности и типа объекта пользователя.
Если указанный субъект является пользователем или группой в Microsoft Entra, идентификатор безопасности должен быть идентификатором этого пользователя или группы в Microsoft Entra. Если указанный субъект является субъектом-службой в Microsoft Entra, идентификатор безопасности должен быть идентификатором приложения (идентификатором клиента) субъекта-службы в Microsoft Entra. Идентификаторы объектов и идентификаторы приложений (идентификаторы клиентов), полученные от Microsoft Entra, должны быть преобразованы в двоичный(16).
Значение аргумента TYPE
должно быть:
E
— если указанный субъект Microsoft Entra является пользователем или субъектом-службой.X
— если указанный субъект Microsoft Entra является группой.
Следующий пример скрипта T-SQL создает пользователя базы данных для пользователя Microsoft Entra с именем bob@contoso.com
, установив идентификатор безопасности нового пользователя на идентификатор объекта пользователя Microsoft Entra. Уникальный идентификатор идентификатора объекта пользователя преобразуется и затем объединяется в инструкцию CREATE USER
. Замените <unique identifier sid>
идентификатором объекта пользователя в Microsoft Entra.
DECLARE @principal_name SYSNAME = 'bob@contoso.com';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- user's object ID in Microsoft Entra
-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);
-- Construct command: CREATE USER [@principal_name] WITH SID = @castObjectId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = E;'
EXEC (@cmd);
В следующем примере создается пользователь базы данных для субъекта-службы Microsoft Entra с именем HRApp
, присвоив идентификатору безопасности нового пользователя идентификатор клиента субъекта-службы в Microsoft Entra.
DECLARE @principal_name SYSNAME = 'HRApp';
DECLARE @clientId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's client ID in Microsoft Entra
-- Convert the guid to the right type
DECLARE @castClientId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @clientId), 1);
-- Construct command: CREATE USER [@principal_name] WITH SID = @castClientId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castClientId + ', TYPE = E;'
EXEC (@cmd);
В следующем примере создается пользователь базы данных для группы Microsoft Entra с именем HR
, присвоив идентификатору безопасности нового пользователя идентификатор объекта группы.
DECLARE @group_name SYSNAME = 'HR';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's object ID in Microsoft Entra
-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);
-- Construct command: CREATE USER [@groupName] WITH SID = @castObjectId, TYPE = X;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);
Ограничения
- Идентификатор Microsoft Entra — это единственная база данных SQL поставщика удостоверений в Fabric. В частности, проверка подлинности SQL не поддерживается.
- Имена входа (субъекты-серверы) не поддерживаются.
Связанный контент
- СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (Transact-SQL)
- ALTER USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Создание пользователя базы данных
- Имена входа и пользователи Microsoft Entra с неуникными отображаемыми именами (предварительная версия)
- Авторизация в базе данных SQL в Microsoft Fabric
- Подключение к базе данных SQL в Microsoft Fabric