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:
- SQL-værktøjer, der understøtter Microsoft Entra-godkendelse, herunder SQL Server Management Studio og udvidelsen mssql med Visual Studio Code.
- Programmer, der bruger SQL-klientdrivere, der understøtter Microsoft Entra-godkendelse, herunder SqlClient, JDBC, ODBC og OLE DB.
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
. , ActiveDirectoryServicePrincipal
eller 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.