Verificatie in SQL-database in Microsoft Fabric
Van toepassing op:✅SQL-database in Microsoft Fabric
In dit artikel wordt de verificatie voor SQL-databases uitgelegd.
Net als andere Microsoft Fabric-itemtypen zijn SQL-databases afhankelijk van Microsoft Entra-verificatie.
Als u zich wilt verifiëren bij een SQL-database, moet een Microsoft Entra-gebruiker, een service-principal of hun groep beschikken over de machtiging Item lezen voor de database in Fabric. Zie Infrastructuurtoegangsbeheer voor informatie over het verlenen van een Microsoft Entra-identiteit aan een Fabric-werkruimte of een specifieke database.
Zie Verbinding maken met uw SQL-database in Microsoft Fabric om de verbindingsreeks met uw SQL-database in Fabric te vinden.
Notitie
Als u service-principals wilt inschakelen om verbinding te maken met Fabric en SQL-databases, moet u ook de Service-principals inschakelen met behulp van de fabric-API's-tenantinstelling. Zie Tenantinstellingen voor Fabric voor meer informatie over het inschakelen van tenantinstellingen.
Verbinding maken met een SQL-database met behulp van Microsoft Entra-verificatie
U kunt verbinding maken met een database met behulp van Microsoft Entra-verificatie met:
- SQL-hulpprogramma's die ondersteuning bieden voor Microsoft Entra-verificatie, waaronder SQL Server Management Studio en de mssql-extensie met Visual Studio Code.
- Toepassingen die gebruikmaken van SQL-clientstuurprogramma's die Ondersteuning bieden voor Microsoft Entra-verificatie, waaronder SqlClient, JDBC, ODBC en OLE DB.
Toepassingen en hulpprogramma's moeten stuurprogramma's upgraden naar versies die Ondersteuning bieden voor Microsoft Entra-verificatie en een trefwoord voor de verificatiemodus toevoegen in hun SQL-verbindingsreeks, zoals ActiveDirectoryInteractive
, ActiveDirectoryServicePrincipal
of ActiveDirectoryPassword
.
Databasegebruikers maken voor Microsoft Entra-identiteiten
Als u sql-toegangsbeheer wilt configureren met Transact-SQL, moet u eerst databasegebruikers maken die overeenkomen met uw Microsoft Entra-identiteiten ( gebruikers, service-principals of hun groepen ) met CREATE USER (Transact-SQL).
Het maken van databasegebruikers is niet vereist als u infrastructuurtoegangsbeheer (werkruimterollen of itemmachtigingen) gebruikt. U hoeft ook geen gebruikers te maken wanneer u rollen op SQL-databaseniveau beheert vanuit de Fabric-portal . In de portal worden gebruikers automatisch gemaakt wanneer dat nodig is.
Databasegebruikers maken wanneer ze zijn verbonden als Microsoft Entra-gebruiker
Wanneer u als Microsoft Entra-gebruiker bent verbonden met uw database, moet u deze gebruiken CREATE USER
met de component FROM EXTERNAL PROVIDER om gebruikers te maken voor Microsoft Entra-principals. FROM EXTERNAL PROVIDER
valideert de opgegeven principal-naam met Microsoft Entra, haalt de principal-id (object-id van gebruiker of groep, toepassings-id of client-id) op en slaat de id op als beveiligings-id (SID) van de gebruiker in SQL-metagegevens. U moet lid zijn van de rol Directory Readers in Microsoft Entra wanneer u de FROM EXTERNAL PROVIDER
component gebruikt. De volgende T-SQL-voorbeeldscripts gebruiken FROM EXTERNAL PROVIDER
om een gebruiker te maken op basis van een Microsoft Entra-gebruiker, een service-principal in Microsoft Entra of een groep in 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;
Databasegebruikers maken wanneer ze zijn verbonden als een Microsoft Entra-service-principal
Wanneer een toepassing is verbonden met een database met een service-principal, moet de toepassing problemen hebben CREATE USER
met de SID - en TYPE-componenten om gebruikers te maken voor Microsoft Entra-principals. De opgegeven principal-naam wordt niet gevalideerd in Microsoft Entra. Het is een verantwoordelijkheid van de toepassing (toepassingsontwikkelaar) om een geldige naam en een geldige SID en een gebruikersobjecttype op te geven.
Als de opgegeven principal een gebruiker of groep in Microsoft Entra is, moet de SID een object-id zijn van die gebruiker of groep in Microsoft Entra. Als de opgegeven principal een service-principal is in Microsoft Entra, moet de SID een toepassings-id (client-id) van de service-principal in Microsoft Entra zijn. Object-id's en toepassings-id's (client-id's) die zijn verkregen van Microsoft Entra, moeten worden geconverteerd naar binair(16).
De waarde van het TYPE
argument moet zijn:
E
- als de opgegeven Microsoft Entra-principal een gebruiker of een service-principal is.X
- als de opgegeven Microsoft Entra-principal een groep is.
Met het volgende T-SQL-voorbeeldscript wordt een databasegebruiker gemaakt voor de Microsoft Entra-gebruiker met de naam bob@contoso.com
, waarbij de SID van de nieuwe gebruiker wordt ingesteld op de object-id van de Microsoft Entra-gebruiker. De unieke id van de object-id van de gebruiker wordt geconverteerd en vervolgens samengevoegd in een CREATE USER
instructie. Vervang door <unique identifier sid>
de object-id van de gebruiker 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);
In het volgende voorbeeld wordt een databasegebruiker gemaakt voor de Microsoft Entra-service-principal met de naam HRApp
, waarbij de SID van de nieuwe gebruiker wordt ingesteld op de client-id van de service-principal in 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);
In het volgende voorbeeld wordt een databasegebruiker gemaakt voor de Microsoft Entra-groep met de naam HR
, waarbij de SID van de nieuwe gebruiker wordt ingesteld op de object-id van de groep.
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);
Beperkingen
- Microsoft Entra ID is de enige SQL-database van de id-provider in Fabric. Sql-verificatie wordt met name niet ondersteund.
- Aanmeldingen (server-principals) worden niet ondersteund.