Udostępnij za pośrednictwem


Uwierzytelnianie w bazie danych SQL w usłudze Microsoft Fabric

Dotyczy bazy danych:SQL w usłudze Microsoft Fabric

W tym artykule opisano uwierzytelnianie baz danych SQL.

Podobnie jak w przypadku innych typów elementów usługi Microsoft Fabric bazy danych SQL opierają się na uwierzytelnianiu firmy Microsoft Entra.

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

Aby znaleźć parametry połączenia do bazy danych SQL w usłudze Fabric, zobacz Nawiązywanie połączenia z bazą danych SQL w usłudze Microsoft Fabric.

Uwaga

Aby umożliwić jednostkom usługi łączenie się z siecią szkieletową i bazami danych SQL, należy również włączyć jednostki usługi mogą używać ustawień dzierżawy usługi Fabric interfejsów API sieci szkieletowej. Aby dowiedzieć się, jak włączyć ustawienia dzierżawy, zobacz Ustawienia dzierżawy sieci szkieletowej.

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

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

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

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

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

Tworzenie użytkowników bazy danych nie jest wymagane, jeśli używasz kontroli dostępu do sieci szkieletowej (ról obszaru roboczego lub uprawnień do elementów). Nie musisz tworzyć użytkowników podczas zarządzania rolami na poziomie bazy danych SQL w portalu sieci szkieletowej — portal automatycznie tworzy użytkowników w razie potrzeby.

Tworzenie użytkowników bazy danych po nawiązaniu połączenia jako użytkownik firmy Microsoft Entra

Po nawiązaniu połączenia z bazą danych jako użytkownik firmy Microsoft Entra należy użyć CREATE USER klauzuli FROM EXTERNAL PROVIDER , aby utworzyć użytkowników dla podmiotów zabezpieczeń firmy Microsoft. FROM EXTERNAL PROVIDER Weryfikuje określoną nazwę główną z firmą Microsoft Entra, pobiera identyfikator podmiotu zabezpieczeń (identyfikator obiektu użytkownika lub grupy, identyfikator aplikacji lub identyfikator klienta) i przechowuje identyfikator jako identyfikator zabezpieczeń użytkownika (SID) w metadanych SQL. Podczas korzystania z FROM EXTERNAL PROVIDER klauzuli musisz być członkiem roli Czytelnicy katalogów w firmie Microsoft Entra. Poniższe przykładowe skrypty języka T-SQL służą FROM EXTERNAL PROVIDER do tworzenia użytkownika na podstawie użytkownika Microsoft Entra, jednostki usługi w usłudze Microsoft Entra lub grupy w usłudze 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 bazy danych w przypadku połączenia jako jednostki usługi Firmy Microsoft Entra

Gdy aplikacja jest połączona z bazą danych z jednostką usługi, aplikacja musi wydać CREATE USER klauzule SID i TYPE , aby utworzyć użytkowników dla podmiotów zabezpieczeń firmy Microsoft. Określona główna nazwa nie jest weryfikowana w usłudze 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 firmie Microsoft Entra, identyfikator SID musi być identyfikatorem obiektu tego użytkownika lub grupy w firmie Microsoft Entra. Jeśli określona jednostka jest jednostką usługi w firmie Microsoft Entra, identyfikator SID musi być identyfikatorem aplikacji (identyfikatorem klienta) jednostki usługi w firmie Microsoft Entra. Identyfikatory obiektów i identyfikatory aplikacji (identyfikatory klientów) uzyskane z firmy Microsoft Entra muszą być konwertowane na pliki binarne (16).

Wartość argumentu TYPE musi być:

  • E — jeśli określona jednostka microsoft Entra jest użytkownikiem lub jednostką usługi.
  • X — jeśli określony podmiot zabezpieczeń firmy Microsoft 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 identyfikatora obiektu użytkownika jest konwertowany, a następnie połączony w instrukcję CREATE USER . Zastąp <unique identifier sid> element identyfikatorem obiektu użytkownika w usłudze 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 firmie 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 [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Ograniczenia

  • Identyfikator Entra firmy Microsoft 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.
  • Identyfikatory logowania (podmioty zabezpieczeń serwera) nie są obsługiwane.