Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Om met succes te authenticeren bij een SQL-database, moet een Microsoft Entra-gebruiker, een service-principal of hun groep de machtiging Item lezen hebben voor de database in Fabric. Zie Fabric-toegangsbeheer voor meer informatie over het verlenen van een Microsoft Entra identiteit tot een Fabric-werkruimte of een specifieke database.
Zie
Notitie
Als u service-principals verbinding wilt laten maken met Fabric en SQL-databases, moet u ook de Fabric-tenantinstelling "Service-principals kunnen Fabric-API's gebruiken" inschakelen. Zie Fabric Tenantinstellingen voor instructies 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 voor 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-connection string, zoals ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal of ActiveDirectoryPassword.
Maak databasegebruikers 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.
Wanneer verbonden als een Microsoft Entra-gebruiker, maak databasegebruikers aan.
Wanneer u als Microsoft Entra gebruiker bent verbonden met uw database, moet u CREATE USER gebruiken 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 de 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 component FROM EXTERNAL PROVIDER gebruikt. In de volgende T-SQL-voorbeeldscripts wordt FROM EXTERNAL PROVIDER gebruikt 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;
Maak databasegebruikers aan wanneer verbonden als een Microsoft Entra service-principe.
Wanneer een toepassing is verbonden met een database met een service-principal, moet de toepassing CREATE USER uitgeven 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 in Microsoft Entra is, 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 uit Microsoft Entra moeten worden geconverteerd naar binary(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 identificator van de object-ID van de gebruiker wordt geconverteerd en vervolgens samengevoegd in een statement. Vervang <unique identifier sid> door 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, waarmee 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 [' + @group_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);
Beperkingen
- Microsoft Entra ID is de enige identiteit provider die door de SQL-database in Fabric wordt ondersteund. Sql-verificatie wordt met name niet ondersteund.
- Aanmeldingen (serverprincipals) worden niet ondersteund.
- Momenteel is het enige ondersteunde verbindingsbeleid voor SQL Database in Microsoft Fabric Default. Zie Verbindingsbeleid voor meer informatie.