Del via


Godkjenning i SQL-database i Microsoft Fabric

Gjelder for:SQL-database i Microsoft Fabric

Denne artikkelen forklarer godkjenning for SQL-databaser.

I likhet med andre elementtyper i Microsoft Fabric er SQL-databaser avhengige av Microsoft Entra-godkjenning.

Hvis du vil godkjenne til en SQL-database, må en Microsoft Entra-bruker, en tjenestekontohaver eller deres gruppe, ha leseelementtillatelse for databasen i Fabric. Hvis du vil ha informasjon om hvordan du gir en Microsoft Entra-identitet tilgang til et Fabric-arbeidsområde eller en bestemt database, kan du se Fabric-tilgangskontroller.

Hvis du vil finne tilkoblingsstreng til SQL-databasen i Fabric, kan du se Koble til SQL-databasen 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-godkjenning

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

Programmer og verktøy må oppgradere drivere til versjoner som støtter Microsoft Entra-godkjenning og legge til et nøkkelord for godkjenningsmodus i SQL-tilkoblingsstreng, for eksempel ActiveDirectoryInteractive, ActiveDirectoryServicePrincipaleller ActiveDirectoryPassword.

Opprette databasebrukere for Microsoft Entra-identiteter

Hvis du planlegger å konfigurere SQL-tilgangskontroller med Transact-SQL, må du først opprette databasebrukere som tilsvarer Microsoft Entra-identitetene dine – brukere, tjenestekontohavere 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.

Opprette databasebrukere når de er koblet til som Microsoft Entra-bruker

Når du er koblet til databasen som Microsoft Entra-bruker, bør du bruke CREATE USER fra ekstern leverandør-setningsdelen til å opprette brukere for Microsoft Entra-hovedstoler. FROM EXTERNAL PROVIDER validerer det angitte hovednavn med Microsoft Entra, henter hovedidentifikatoren (brukerens eller gruppens objekt-ID, program-ID eller klient-ID), og lagrer identifikatoren som brukerens sikkerhetsidentifikator (SID) i SQL-metadata. Du må være medlem av rollen kataloglesere i Microsoft Entra når du bruker setningsdelen FROM EXTERNAL PROVIDER . Følgende eksempel på T-SQL-skript brukes FROM EXTERNAL PROVIDER til å opprette en bruker basert på en Microsoft Entra-bruker, en tjenestekontohaver 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; 

Opprette databasebrukere når de er tilkoblet som microsoft Entra-tjenestekontohaver

Når et program er koblet til en database med en tjenestekontohaver, må programmet utstede CREATE USER SID - og TYPE-setninger for å opprette brukere for Microsoft Entra-hovedstoler. Det angitte hovednavn er ikke validert i Microsoft Entra. Det er et ansvar for programmet (programutvikleren) å oppgi et gyldig navn og en gyldig SID og en brukerobjekttype.

Hvis den angitte hovedstolen er en bruker eller gruppe i Microsoft Entra, må SID være en objekt-ID for denne brukeren eller gruppen i Microsoft Entra. Hvis den angitte hovedstolen er tjenestekontohaver i Microsoft Entra, må SID være en program-ID (klient-ID) for tjenestekontohaveren i Microsoft Entra. Objekt-ID-er og program-ID-er (klient-ID-er) hentet fra Microsoft Entra må konverteres til binær(16).

Verdien for TYPE argumentet må være:

  • E – hvis den angitte Microsoft Entra-hovedstolen er en bruker eller en tjenestekontohaver.
  • X – hvis den angitte Microsoft Entra-hovedstolen er en gruppe.

Følgende T-SQL-eksempelskript oppretter en databasebruker for Microsoft Entra-brukeren, kalt bob@contoso.com, og angir SID-en for den nye brukeren til objekt-ID-en til 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-tjenestekontohaveren, kalt HRApp, og angir SID-en for den nye brukeren til klient-ID-en til tjenestekontohaveren 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 angir SID-en for den nye brukeren til objekt-ID-en for 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 [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Begrensninger

  • Microsoft Entra ID er den eneste SQL-databasen for identitetsleverandøren i Fabric som støttes. Sql-godkjenning støttes spesielt ikke.
  • Pålogginger (serverkontohavere) støttes ikke.