Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:✅bazy 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 tożsamości Microsoft Entra dostępu do obszaru roboczego Fabric lub określonej bazy danych, zobacz Kontrole dostępu Fabric.
Aby znaleźć łańcuch połączenia do bazy danych SQL w usłudze Fabric, zobacz w Połączenie z bazą danych SQL w Microsoft Fabric.
Uwaga
Aby umożliwić łączność jednostkom usługi z Fabric oraz bazami danych SQL, należy również aktywować ustawienie dzierżawy Fabric "jednostki usługi mogą korzystać 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ą:
- Narzędzia SQL obsługujące uwierzytelnianie Microsoft Entra, w tym SQL Server Management Studio i rozszerzenie MSSQL dla Visual Studio Code.
- Aplikacje korzystające z sterowników klienta SQL obsługujących uwierzytelnianie Microsoft Entra, w tym SqlClient, JDBC, ODBC i OLE DB.
Aplikacje i narzędzia muszą uaktualnić sterowniki do wersji obsługujących uwierzytelnianie Microsoft Entra i dodać słowo kluczowe trybu uwierzytelniania w SQL connection string, 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 trzeba utworzyć użytkowników bazy danych odpowiadające tożsamościom Microsoft Entra — użytkownikom, jednostkom usługi lub ich grupom — z poleceniem CREATE USER (Transact-SQL).
Tworzenie użytkowników bazy danych nie jest wymagane, jeśli używasz kontroli dostępu Fabric (ról przestrzeni roboczej lub uprawnień do elementów). Nie musisz tworzyć użytkowników podczas zarządzania rolami na poziomie bazy danych SQL w portalu Fabric — portal automatycznie tworzy użytkowników w razie potrzeby.
Utwórz użytkowników bazy danych podczas połączenia 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 do tworzenia użytkowników dla obiektó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 w oparciu o użytkownika Microsoft Entra, jednostkę usługi w Microsoft Entra lub grupę 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 bazy danych w przypadku połączenia jako jednostki usługi Microsoft Entra
Gdy aplikacja jest połączona z bazą danych z główną usługową, aplikacja musi wydać CREATE USER z klauzulami SID oraz TYPE, aby utworzyć użytkowników dla głównych usługowych 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 podstawowy element 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 TYPE musi być:
-
E— jeśli określona jednostka Microsoft Entra to użytkownik lub jednostka serwisowa. -
X— jeśli określona jednostka główna Microsoft Entra to grupa.
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 zostaje przekonwertowany i następnie skonkatenowany w instrukcję CREATE USER. 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
- Microsoft Entra ID 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ń.
Powiązana zawartość
- UTWÓRZ UŻYTKOWNIKA (Transact-SQL)
- ALTER USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Tworzenie użytkownika bazy danych
- Microsoft Entra logowania i użytkownicy z nieunikalnymi nazwami wyświetlanymi (wersja zapoznawcza)
- Autoryzacja w bazie danych SQL w Microsoft Fabric
- Połączenie z bazą danych SQL w Microsoft Fabric