Udostępnij za pośrednictwem


Uwierzytelnianie w bazie danych SQL w usłudze Microsoft Fabric

Dotyczy:baza danych SQL w Microsoft Fabric

W tym artykule opisano uwierzytelnianie baz danych SQL.

Podobnie jak w przypadku innych typów elementów Microsoft Fabric bazy danych SQL korzystają z uwierzytelniania Microsoft Entra.

Aby pomyślnie uwierzytelnić się w bazie danych SQL, użytkownik Microsoft Entra, jednostka usługi lub ich group musi mieć uprawnienie Odczyt elementu dla bazy danych w sieci szkieletowej. Aby uzyskać informacje na temat udzielania dostępu do obszaru roboczego Fabric lub określonej bazy danych dla tożsamości w Microsoft Entra, zobacz Kontrole dostępu.

Aby odnaleźć łańcuch połączenia do bazy danych SQL w usłudze Fabric, zobacz Połączenie z bazą danych SQL w Microsoft Fabric.

Uwaga

Aby umożliwić podmiotom usługi łączenie się z Fabric i bazami danych SQL, należy również włączyć ustawienie dzierżawy Fabric umożliwiające podmiotom usługi korzystanie z interfejsów API Fabric. Aby dowiedzieć się, jak włączyć ustawienia dzierżawy, zobacz Ustawienia dzierżawy Fabric.

Nawiązywanie połączenia z bazą danych SQL przy użyciu uwierzytelniania Microsoft Entra

Możesz nawiązać połączenie z bazą danych przy użyciu uwierzytelniania Microsoft Entra za pomocą:

Aplikacje i narzędzia muszą uaktualnić sterowniki do wersji obsługujących uwierzytelnianie Microsoft Entra i dodać słowo kluczowe trybu uwierzytelniania w SQL parametry połączenia, takie jak ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal lub ActiveDirectoryPassword.

Tworzenie użytkowników bazy danych dla tożsamości Microsoft Entra

Jeśli planujesz konfigurowanie kontroli dostępu SQL za pomocą Transact-SQL, najpierw należy utworzyć użytkowników bazy danych odpowiadających tożsamościom Microsoft Entra — użytkownikom, jednostkom usługi lub ich grupom — za pomocą CREATE USER (Transact-SQL).

Tworzenie użytkowników bazy danych nie jest wymagane, jeśli stosujesz kontrole dostępu w ramach Platformy Fabric (role w przestrzeni roboczej lub uprawnienia do elementów). Nie musisz tworzyć użytkowników podczas zarządzania rolami na poziomie bazy danych SQL z poziomu portalu Fabric — portal automatycznie dodaje użytkowników w razie potrzeby.

Utwórz użytkowników bazy danych, gdy jesteś połączony jako użytkownik Microsoft Entra

Po nawiązaniu połączenia z bazą danych jako użytkownik Microsoft Entra, należy użyć klauzuli CREATE USER z FROM EXTERNAL PROVIDER, aby utworzyć użytkowników dla podstawowych podmiotów zabezpieczeń Microsoft Entra. FROM EXTERNAL PROVIDER weryfikuje określoną nazwę główną przy użyciu Microsoft Entra, pobiera identyfikator podmiotu (identyfikator obiektu użytkownika lub grupy, identyfikator aplikacji lub identyfikator klienta) i przechowuje identyfikator jako identyfikator zabezpieczeń użytkownika (SID) w metadanych SQL. Musisz być członkiem roli Directory Readers w Microsoft Entra podczas używania klauzuli FROM EXTERNAL PROVIDER. Poniższe przykładowe skrypty języka T-SQL używają FROM EXTERNAL PROVIDER do utworzenia użytkownika na podstawie użytkownika Microsoft Entra, jednostki usługi w Microsoft Entra lub grupy w 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; 

Tworzenie użytkowników bazodanowych podczas połączenia jako podmiot usługi Microsoft Entra

Gdy aplikacja jest połączona z bazą danych z podmiotem usługi, aplikacja musi wydać CREATE USER z klauzulami SID i TYPE, aby utworzyć użytkowników dla podmiotów Microsoft Entra. Określona nazwa główna nie jest weryfikowana w Microsoft Entra. Obowiązkiem aplikacji (dewelopera aplikacji) jest podanie prawidłowej nazwy oraz prawidłowego identyfikatora SID i typu obiektu użytkownika.

Jeśli określony podmiot zabezpieczeń jest użytkownikiem lub grupą w Microsoft Entra, identyfikator SID musi być identyfikatorem obiektu tego użytkownika lub grupy w Microsoft Entra. Jeśli określona jednostka usługi jest jednostką usługi w Microsoft Entra, identyfikator SID musi być identyfikatorem aplikacji (identyfikatorem klienta) jednostki usługi w Microsoft Entra. Identyfikatory obiektów i identyfikatory aplikacji (identyfikatory klientów) uzyskane z Microsoft Entra muszą zostać przekonwertowane na identyfikatory binary(16).

Wartość argumentu musi być:

  • E — jeśli określona jednostka Microsoft Entra jest użytkownikiem lub jednostką usługi.
  • X — jeśli określony podmiot Microsoft Entra jest grupą.

Poniższy przykładowy skrypt języka T-SQL tworzy użytkownika bazy danych dla użytkownika Microsoft Entra o nazwie bob@contoso.com, ustawiając identyfikator SID nowego użytkownika na identyfikator obiektu użytkownika Microsoft Entra. Unikatowy identyfikator obiektu użytkownika jest konwertowany, a następnie połączony w zdanie. Zastąp <unique identifier sid> identyfikatorem obiektu użytkownika w 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);

Poniższy przykład tworzy użytkownika bazy danych dla jednostki usługi Microsoft Entra o nazwie HRApp, ustawiając identyfikator SID nowego użytkownika na identyfikator klienta jednostki usługi w 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);

Poniższy przykład tworzy użytkownika bazy danych dla grupy Microsoft Entra o nazwie HR, ustawiając identyfikator SID nowego użytkownika na identyfikator obiektu grupy.

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 [' + @group_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Ograniczenia

  • Tożsamość Microsoft Entra jest jedyną obsługiwaną bazą danych SQL dostawcy tożsamości w usłudze Fabric. W szczególności uwierzytelnianie SQL nie jest obsługiwane.
  • Loginy (zasoby serwera) nie są obsługiwane.
  • Obecnie jedynymi obsługiwanymi zasadami połączenia dla bazy danych SQL w Microsoft Fabric jest Default. Aby uzyskać więcej informacji, zobacz Zasady połączeń.