Del via


Autentisering i SQL-database i Microsoft Fabric

Gjelder for:SQL database i Microsoft Fabric

Denne artikkelen forklarer godkjenning for SQL-databaser.

Som andre Microsoft Fabric elementtyper, baserer SQL-databaser seg på Microsoft Entra autentisering.

For å kunne autentisere seg til en SQL-database må en Microsoft Entra-bruker, en tjenesteprincipal, eller deres group, ha lesetillatelse for databasen i Fabric. For informasjon om hvordan du gir en Microsoft Entra identitetstilgang til et Fabric-arbeidsområde eller en spesifikk database, se Fabric access controls.

For å finne connection string til SQL-databasen din i Fabric, se Koble til SQL-databasen din i Microsoft Fabric.

Merk

Hvis du vil gjøre det mulig for tjenestekontohavere å koble til Fabric og SQL-databaser, må du også aktivere tjenestekontohaverne kan bruke fabric API-er Fabric-leierinnstillingen. Hvis du vil lære hvordan du aktiverer leierinnstillinger, kan du se Innstillinger for Stoffleietaker.

Koble til en SQL-database ved hjelp av Microsoft Entra-autentisering

Du kan koble til en database ved hjelp av Microsoft Entra-autentisering med:

Applikasjoner og verktøy må oppgradere drivere til versjoner som støtter Microsoft Entra-autentisering og legge til et autentiseringsmodus-nøkkelord i sine SQL connection string, som ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal eller ActiveDirectoryPassword.

Opprett databasebrukere for Microsoft Entra-identiteter

Hvis du planlegger å konfigurere SQL-tilgangskontroller med Transact-SQL, må du først opprette databasebrukere som tilsvarer dine Microsoft Entra identiteter – brukere, tjenesteledere eller deres grupper – med CREATE USER (Transact-SQL).

Det er ikke nødvendig å opprette databasebrukere hvis du bruker fabric-tilgangskontroller (arbeidsområderoller eller elementtillatelser). Du trenger ikke å opprette brukere når du administrerer roller på SQL-databasenivå fra Fabric-portalen heller – portalen oppretter automatisk brukere ved behov.

Opprett databasebrukere når du er koblet til som Microsoft Entra-bruker

Når du er koblet til databasen din som Microsoft Entra-bruker, bør du bruke CREATE USER med klausulen FROM EXTERNAL PROVIDER for å opprette brukere for Microsoft Entra principaler. FROM EXTERNAL PROVIDER validerer det angitte hovednavnet med Microsoft Entra, henter hovedidentifikatoren (brukerens eller gruppens objekt-ID, applikasjons-ID eller klient-ID), og lagrer identifikatoren som brukerens sikkerhetsidentifikator (SID) i SQL-metadata. Du må være medlem av rollen Directory Readers i Microsoft Entra når du bruker FROM EXTERNAL PROVIDER-klausulen. Følgende eksempler på T-SQL-skript bruker FROM EXTERNAL PROVIDER for å lage en bruker basert på en Microsoft Entra bruker, en tjenesteprincipal i Microsoft Entra, eller en gruppe i 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; 

Opprett databasebrukere når de er koblet til som en Microsoft Entra-tjenesteleder

Når en applikasjon kobles til en database med en tjenesteprincipal, må applikasjonen utstede CREATE USER med SID og TYPE for å opprette brukere for Microsoft Entra prinsipper. Det angitte hovednavnet valideres ikke i Microsoft Entra. Det er et ansvar for programmet (programutvikleren) å oppgi et gyldig navn og en gyldig SID og en brukerobjekttype.

Hvis den angitte hovedpersonen er en bruker eller en gruppe i Microsoft Entra, må SID være en objekt-ID for den brukeren eller gruppen i Microsoft Entra. Hvis den spesifiserte hovedpersonen er en tjenesteprinsipp i Microsoft Entra, må SID være en applikasjons-ID (klient-ID) til tjenesteprinsippet i Microsoft Entra. Objekt-IDer og applikasjons-IDer (klient-IDer) hentet fra Microsoft Entra må konverteres til binær(16).

Verdien for TYPE argumentet må være:

  • E – hvis den spesifiserte Microsoft Entra principal er en bruker eller en tjenesteprincipal.
  • X – hvis den spesifiserte Microsoft Entra prinsippet er en gruppe.

Følgende T-SQL-eksempelskript oppretter en databasebruker for den Microsoft Entra brukeren, kalt bob@contoso.com, og setter SID-en til den nye brukeren til objekt-ID-en til den Microsoft Entra brukeren. Den unike identifikatoren for brukerens objekt-ID konverteres og settes deretter sammen til en CREATE USER setning. Erstatt <unique identifier sid> med brukerens objekt-ID i 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);

Følgende eksempel oppretter en databasebruker for Microsoft Entra tjenesteprinsipp, kalt HRApp, og setter SID for den nye brukeren til klient-ID-en til tjenesteprinsippet i 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);

Følgende eksempel oppretter en databasebruker for Microsoft Entra-gruppen, kalt HR, og setter SID-en til den nye brukeren til objekt-ID-en til gruppen.

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);

Begrensninger

  • Microsoft Entra ID er den eneste identitetsleverandøren SQL-database som Fabric støtter. Sql-godkjenning støttes spesielt ikke.
  • Pålogginger (serverkontohavere) støttes ikke.
  • For øyeblikket er den eneste støttede tilkoblingspolicyen for SQL-databaser i Microsoft Fabric Default. Hvis du vil ha mer informasjon, kan du se Tilkoblingspolicy.