Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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 autentificering.
For at kunne autentificere sig til en SQL-database med succes, skal en Microsoft Entra-bruger, en service principal eller deres group have læseelement-tilladelsen for databasen i Fabric. For information om, hvordan man giver en Microsoft Entra identitet adgang til et Fabric-arbejdsområde eller en specifik database, se Fabric-adgangskontroller.
For at finde connection string til din SQL-database i Fabric, se Connect 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.
Forbind til en SQL-database ved hjælp af Microsoft Entra-autentificering
Du kan oprette forbindelse til en database ved hjælp af Microsoft Entra-autentificering med:
- SQL-værktøjer, der understøtter Microsoft Entra autentificering, herunder SQL Server Management Studio og MSSQL-udvidelsen til Visual Studio Code.
- Applikationer, der bruger SQL-klientdrivere, der understøtter Microsoft Entra autentificering, herunder SqlClient, JDBC, ODBC og OLE DB.
Applikationer og værktøjer skal opgradere drivere til versioner, der understøtter Microsoft Entra autentificering, og tilføje et autentificeringsmode-nøgleord i deres SQL connection string, som ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal eller ActiveDirectoryPassword.
Opret databasebrugere til Microsoft Entra-identiteter
Hvis du planlægger at konfigurere SQL-adgangskontroller 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 de er forbundet som Microsoft Entra-bruger.
Når du er forbundet til din database som Microsoft Entra-bruger, bør du bruge CREATE USER med klausulen FROM EXTERNAL PROVIDER til at oprette brugere til Microsoft Entra principaler.
FROM EXTERNAL PROVIDER validerer det specificerede hovednavn med Microsoft Entra, henter hovedidentifikatoren (brugerens eller gruppens objekt-ID, applikations-ID eller klient-ID) og gemmer identifikatoren som brugerens sikkerhedsidentifikator (SID) i SQL-metadata. Du skal være medlem af rollen Directory Readers i Microsoft Entra, når du bruger FROM EXTERNAL PROVIDER-klausulen. Følgende eksempler på T-SQL-scripts bruger FROM EXTERNAL PROVIDER til at oprette en bruger baseret på en Microsoft Entra bruger, en serviceprincipal 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 de er tilsluttet som en Microsoft Entra-tjenesteprincipal
Når en applikation er forbundet til en database med en tjenesteprincipal, skal applikationen udstede CREATE USER med SID og TYPE klausuler for at oprette brugere til Microsoft Entra principaler. 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 principal er en bruger eller en gruppe i Microsoft Entra, skal SID være et objekt-ID for den bruger eller gruppe i Microsoft Entra. Hvis den specificerede principal er en service principal i Microsoft Entra, skal SID være et applikations-ID (klient-ID) for serviceprincipalen i Microsoft Entra. Objekt-ID'er og applikations-ID'er (klient-ID'er), der opnås fra Microsoft Entra, skal konverteres til binær(16).
Værdien af TYPE argumentet skal være:
-
E- hvis den specificerede Microsoft Entra principal er en bruger eller en serviceprincipal. -
X- hvis den specificerede Microsoft Entra principal er en gruppe.
Det følgende T-SQL-eksempelscript opretter en databasebruger for den Microsoft Entra bruger, kaldet bob@contoso.com, og sætter den nye brugers SID til objekt-ID'et for den Microsoft Entra bruger. 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);
Følgende eksempel opretter en databasebruger for Microsoft Entra serviceprincipal, kaldet HRApp, og sætter den nye brugers SID til klient-ID'et for serviceprincipalen 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 opretter en databasebruger for Microsoft Entra gruppen, kaldet HR, hvor den nye brugers SID sættes til gruppens objekt-ID.
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);
Begrænsninger
- Microsoft Entra ID er den eneste identitetsudbyder, som SQL-databasen understøtter. SQL-godkendelse understøttes specifikt ikke.
- Logon (serverprincipaler) understøttes ikke.
- I øjeblikket er den eneste understøttede forbindelsespolitik for SQL-databaser i Microsoft Fabric Default. Du kan få flere oplysninger under Forbindelsespolitik.