Delen via


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.

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:

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, ActiveDirectoryServicePrincipalof 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.