Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:✅SQL-Datenbank in Microsoft Fabric
In diesem Artikel wird die Authentifizierung für SQL-Datenbanken erläutert.
Wie andere Microsoft Fabric Elementtypen basieren SQL-Datenbanken auf Microsoft Entra authentication.
Um sich erfolgreich bei einer SQL-Datenbank zu authentifizieren, muss ein Microsoft Entra Benutzer, ein serviceprinzipal oder seine group über die Berechtigung "Element lesen" für die Datenbank in Fabric verfügen. Informationen zum Gewähren eines Microsoft Entra Identitätszugriffs auf einen Fabric-Arbeitsbereich oder eine bestimmte Datenbank finden Sie unter Fabric-Zugriffssteuerungen.
Um den Connection String zu Ihrer SQL-Datenbank in Fabric zu finden, siehe Verbinden mit Ihrer SQL-Datenbank in Microsoft Fabric.
Hinweis
Damit Dienstprinzipale eine Verbindung mit Fabric und SQL-Datenbanken herstellen können, müssen Sie auch die Fabric-Mandanteneinstellung „Dienstprinzipale können Fabric-APIs verwenden“ aktivieren. Informationen zum Aktivieren der Mandanteneinstellungen finden Sie unter Fabric-Mandanteneinstellungen.
Herstellen einer Verbindung mit einer SQL-Datenbank mithilfe Microsoft Entra Authentifizierung
Sie können eine Verbindung zu einer Datenbank mithilfe von Microsoft Entra-Authentifizierung herstellen:
- SQL-Tools, die Microsoft Entra Authentifizierung unterstützen, einschließlich SQL Server Management Studio und die MSSQL-Erweiterung für Visual Studio Code.
- Anwendungen, die SQL-Clienttreiber verwenden, die Microsoft Entra Authentifizierung unterstützen, einschließlich SqlClient, JDBC, ODBC und OLE DB.
Anwendungen und Tools müssen Treiber auf Versionen aktualisieren, die Microsoft Entra Authentifizierung unterstützen, und ein Schlüsselwort für den Authentifizierungsmodus in ihrer SQL-connection string hinzufügen, z. B. ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal oder ActiveDirectoryPassword.
Erstellen von Datenbankbenutzern für Microsoft Entra Identitäten
Wenn Sie die SQL-Zugriffssteuerungen mit Transact-SQL
Das Erstellen von Datenbankbenutzern ist nicht erforderlich, wenn Sie Fabric-Zugriffssteuerungen (Arbeitsbereichsrollen oder Elementberechtigungen) verwenden. Sie müssen keine Benutzer erstellen, wenn Sie Rollen auf SQL-Datenbankebene über das Fabric-Portal verwalten. Das Portal erstellt bei Bedarf automatisch Benutzer.
Datenbankbenutzer erstellen, wenn Sie als Microsoft Entra-Benutzer verbunden sind
Wenn Sie mit Ihrer Datenbank als Microsoft Entra Benutzer verbunden sind, sollten Sie CREATE USER mit der Klausel FROM EXTERNAL PROVIDER verwenden, um Benutzer für Microsoft Entra Prinzipale zu erstellen.
FROM EXTERNAL PROVIDER überprüft den angegebenen Hauptbenutzernamen mit Microsoft Entra, ruft die Prinzipal-ID (Objekt-ID des Benutzers oder der Gruppe, Anwendungs-ID oder Client-ID) ab und speichert den Bezeichner als Sicherheitskennzeichen-ID (SID) des Benutzers in den SQL-Metadaten. Sie müssen Mitglied der Rolle Directory Readers in Microsoft Entra sein, wenn Sie die Klausel FROM EXTERNAL PROVIDER verwenden. Die folgenden T-SQL-Beispielskripts verwenden FROM EXTERNAL PROVIDER, um einen Benutzer basierend auf einem Microsoft Entra Benutzer, einem Dienstprinzipal in Microsoft Entra oder einer Gruppe in Microsoft Entra zu erstellen.
-- 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;
Erstellen von Datenbankbenutzern, wenn eine Verbindung als Microsoft Entra Dienstprinzipal hergestellt wird
Wenn eine Anwendung mit einer Datenbank über einen Dienstprinzipal verbunden ist, muss die Anwendung CREATE USER mit den Klauseln SID und TYPE ausgeben, um Benutzer für Microsoft Entra Principals zu erstellen. Der angegebene Prinzipalname wird in Microsoft Entra nicht überprüft. Es liegt in der Verantwortung der Anwendung (Anwendungsentwicklungsfachkräfte), einen gültigen Namen, eine gültige SID und einen Benutzerobjekttyp anzugeben.
Wenn der angegebene Prinzipal ein Benutzer oder eine Gruppe in Microsoft Entra ist, muss die SID eine Objekt-ID dieses Benutzers oder dieser Gruppe in Microsoft Entra sein. Wenn der angegebene Prinzipal ein Dienstprinzipal in Microsoft Entra ist, muss die SID eine Anwendungs-ID (Client-ID) des Dienstprinzipals in Microsoft Entra sein. Objekt-IDs und Anwendungs-IDs (Client-IDs), die von Microsoft Entra abgerufen werden, müssen in binary(16) konvertiert werden.
Das Argument TYPE muss einen Wert haben, auf den Folgendes zutrifft:
-
E– wenn der angegebene Microsoft Entra Prinzipal ein Benutzer oder ein Dienstprinzipal ist. -
X– wenn der angegebene Microsoft Entra Prinzipal eine Gruppe ist.
Das folgende T-SQL-Beispielskript erstellt einen Datenbankbenutzer für den Microsoft Entra Benutzer mit dem Namen bob@contoso.com und legt die SID des neuen Benutzers auf die Objekt-ID des Microsoft Entra Benutzers fest. Der eindeutige Bezeichner der Objekt-ID des Benutzers wird konvertiert und dann zu einer CREATE USER-Anweisung verkettet. Ersetzen Sie <unique identifier sid> durch die Objekt-ID des Benutzers in 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);
Im folgenden Beispiel wird ein Datenbankbenutzer für den Microsoft Entra Serviceprincipal namens HRApp erstellt, wobei die SID des neuen Benutzers auf die Client-ID des Serviceprincipals in Microsoft Entra festgelegt wird.
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);
Im folgenden Beispiel wird ein Datenbankbenutzer für die gruppe Microsoft Entra namens HR erstellt, wobei die SID des neuen Benutzers auf die Objekt-ID der Gruppe festgelegt wird.
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);
Begrenzungen
- Microsoft Entra ID ist der einzige Identitätsanbieter, den die SQL-Datenbank in Fabric unterstützt. Insbesondere wird die SQL-Authentifizierung nicht unterstützt.
- Anmeldungen (Serverprinzipale) werden nicht unterstützt.
- Derzeit ist die einzige unterstützte Verbindungsrichtlinie für sql-Datenbank in Microsoft Fabric Default. Weitere Informationen finden Sie unter Verbindungsrichtlinie.
Zugehöriger Inhalt
BENUTZER (Transact-SQL) - ALTER USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Erstellen eines Datenbankbenutzers
- Microsoft Entra Anmeldungen und Benutzer mit uneindeutigen Anzeigenamen (Vorschau)
- Autorisierung innerhalb der SQL-Datenbank in Microsoft Fabric
- Verbinden Sie sich mit Ihrer SQL-Datenbank in Microsoft Fabric