Del via


Godkendelse i SQL-database i Microsoft Fabric

Gælder for:SQL-database i Microsoft Fabric

I denne artikel forklares godkendelse af SQL-databaser.

Ligesom andre Microsoft Fabric-elementtyper er SQL-databaser afhængige af Microsoft Entra-godkendelse.

En Microsoft Entra-bruger, en tjenesteprincipal eller deres gruppe skal have tilladelsen Læs element til databasen i Fabric for at kunne godkende en SQL-database. Du kan få oplysninger om, hvordan du tildeler en Microsoft Entra-identitetsadgang til et Fabric-arbejdsområde eller en bestemt database, under Fabric-adgangskontrolelementer.

Hvis du vil finde forbindelsesstreng til din SQL-database i Fabric, skal du se Opret forbindelse til din SQL-database i Microsoft Fabric.

Bemærk

Hvis du vil gøre det muligt for tjenesteprincipaler at oprette forbindelse til Fabric- og SQL-databaser, skal du også aktivere indstillingen Tjenesteprincipaler kan bruge Fabric API'er Fabric-lejerindstillingen . Du kan få mere at vide om, hvordan du aktiverer lejerindstillinger, under Strukturlejerindstillinger.

Opret forbindelse til en SQL-database ved hjælp af Microsoft Entra-godkendelse

Du kan oprette forbindelse til en database ved hjælp af Microsoft Entra-godkendelse med:

Programmer og værktøjer skal opgradere drivere til versioner, der understøtter Microsoft Entra-godkendelse, og tilføje nøgleordet godkendelsestilstand i deres SQL-forbindelsesstreng, f.eksActiveDirectoryInteractive. , ActiveDirectoryServicePrincipaleller ActiveDirectoryPassword.

Opret databasebrugere til Microsoft Entra-identiteter

Hvis du planlægger at konfigurere SQL-adgangskontrolelementer med Transact-SQL, skal du først oprette databasebrugere , der svarer til dine Microsoft Entra-identiteter – brugere, tjenesteprincipaler eller deres grupper – med CREATE USER (Transact-SQL).

Oprettelse af databasebrugere er ikke påkrævet, hvis du bruger Fabric-adgangskontrolelementer (arbejdsområderoller eller elementtilladelser). Du behøver heller ikke at oprette brugere, når du administrerer SQL-roller på databaseniveau fra Fabric Portal – portalen opretter automatisk brugere, når det er nødvendigt.

Opret databasebrugere, når der er oprettet forbindelse som en Microsoft Entra-bruger

Når du har oprettet forbindelse til din database som Microsoft Entra-bruger, skal du bruge CREATE USER delsætningen FROM EXTERNAL PROVIDER til at oprette brugere til Microsoft Entra-principaler. FROM EXTERNAL PROVIDER validerer det angivne hovednavn med Microsoft Entra, henter hoved-id'et (brugerens eller gruppens objekt-id, program-id eller klient-id) og gemmer id'et som brugerens sikkerheds-id (SID) i SQL-metadata. Du skal være medlem af rollen Mappelæsere i Microsoft Entra, når du bruger delsætningenFROM EXTERNAL PROVIDER. Følgende eksempel på T-SQL-scripts bruges FROM EXTERNAL PROVIDER til at oprette en bruger, der er baseret på en Microsoft Entra-bruger, 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; 

Opret databasebrugere, når der er oprettet forbindelse som en Microsoft Entra-tjenesteprincipal

Når et program har forbindelse til en database med en tjenesteprincipal, skal programmet have problemer CREATE USER med SID- og TYPE-delsætningerne for at oprette brugere til Microsoft Entra-hoveder. Det angivne hovednavn valideres ikke i Microsoft Entra. Det er programmets (programudviklerens) ansvar at angive et gyldigt navn og et gyldigt SID og en brugerobjekttype.

Hvis den angivne hovedkonto er en bruger eller en gruppe i Microsoft Entra, skal SID'et være et objekt-id for den pågældende bruger eller gruppe i Microsoft Entra. Hvis den angivne hovedprincipal er en tjenesteprincipal i Microsoft Entra, skal SID'et være et program-id (klient-id) for tjenesteprincipalen i Microsoft Entra. Objekt-id'er og program-id'er (klient-id'er), der er hentet fra Microsoft Entra, skal konverteres til binær(16).

Værdien af TYPE argumentet skal være:

  • E – hvis den angivne Microsoft Entra-principal er en bruger eller en tjenesteprincipal.
  • X - hvis den angivne Microsoft Entra-principal er en gruppe.

Følgende T-SQL-eksempelscript opretter en databasebruger til Microsoft Entra-brugeren med navnet bob@contoso.com, der angiver SID'et for den nye bruger til objekt-id'et for Microsoft Entra-brugeren. Det entydige id for brugerens objekt-id konverteres og sammenkædes derefter til en CREATE USER sætning. Erstat <unique identifier sid> med brugerens 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);

I følgende eksempel oprettes en databasebruger for Microsoft Entra-tjenesteprincipalen med navnet HRApp, der angiver SID'et for den nye bruger til klient-id'et for tjenesteprincipalen 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);

I følgende eksempel oprettes en databasebruger for Microsoft Entra-gruppen med navnet HR, hvor SID for den nye bruger indstilles til objekt-id'et 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);

Begrænsninger

  • Microsoft Entra ID er den eneste SQL-database til identitetsudbydere i Fabric, der understøtter. SQL-godkendelse understøttes specifikt ikke.
  • Logon (serverprincipaler) understøttes ikke.