Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:✅SQL database in Microsoft Fabric
Questo articolo illustra l'autenticazione per i database SQL.
Analogamente ad altri tipi di elementi Microsoft Fabric, i database SQL si basano sull'autenticazione Microsoft Entra.
Per eseguire l'autenticazione a un database SQL, un utente Microsoft Entra, un'entità servizio , o il relativo gruppo, deve disporre dell'autorizzazione Read item per il database in Fabric. Per informazioni su come concedere a un'identità Microsoft Entra l'accesso a uno spazio di lavoro Fabric o a un database specifico, vedere controlli di accesso di Fabric.
Per trovare il connection string nel database SQL in Fabric, vedere Connettersi al database SQL in Microsoft Fabric.
Nota
Per consentire agli principali del servizio di connettersi a Fabric e ai database SQL, è inoltre necessario abilitare l'impostazione del tenant principali del servizio possono usare le API di Fabric. Per informazioni su come abilitare le impostazioni del tenant, vedere Impostazioni del tenant di Fabric.
Connettersi a un database SQL usando l'autenticazione Microsoft Entra
È possibile connettersi a un database usando l'autenticazione di Microsoft Entra con:
- Strumenti SQL che supportano l'autenticazione Microsoft Entra, tra cui SQL Server Management Studio e la estensione MSSQL per Visual Studio Code.
- Applicazioni che usano driver client SQL che supportano l'autenticazione Microsoft Entra, tra cui SqlClient, JDBC, ODBC e OLE DB.
Le applicazioni e gli strumenti devono aggiornare i driver alle versioni che supportano l'autenticazione Microsoft Entra e aggiungere una parola chiave della modalità di autenticazione nel SQL connection string, ad esempio ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal o ActiveDirectoryPassword.
Creare utenti del database per le identità di Microsoft Entra
Se si prevede di configurare i controlli di accesso SQL con Transact-SQL è prima necessario creare utenti di database corrispondenti alle identità Microsoft Entra, ovvero utenti, entità servizio o gruppi, con CREATE USER (Transact-SQL).
La creazione di utenti del database non è necessaria se si usano i controlli di accesso dell'infrastruttura (ruoli dell'area di lavoro o autorizzazioni per gli elementi). Non è necessario creare utenti quando si gestiscono ruoli a livello di database SQL dal portale di Fabric. Il portale crea automaticamente gli utenti quando necessario.
Creare utenti di database quando si è connessi come utente Microsoft Entra
Quando si è connessi al database come utente Microsoft Entra, è consigliabile usare CREATE USER con la clausola FROM EXTERNAL PROVIDER per creare utenti per le entità di Microsoft Entra.
FROM EXTERNAL PROVIDER convalida il nome dell'entità specificato con Microsoft Entra, recupera l'identificatore dell'entità (ID oggetto dell'utente o del gruppo, ID applicazione o ID client) e archivia l'identificatore come identificatore di sicurezza (SID) dell'utente nei metadati SQL. È necessario essere membri del ruolo Directory Readers in Microsoft Entra quando si utilizza la clausola FROM EXTERNAL PROVIDER. Gli script T-SQL di esempio seguenti usano FROM EXTERNAL PROVIDER per creare un utente basato su un utente Microsoft Entra, un'entità servizio in Microsoft Entra o un gruppo in 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;
Creare utenti di database quando si è connessi come entità servizio Microsoft Entra
Quando un'applicazione è connessa a un database con un principal di servizio, l'applicazione deve emettere CREATE USER con le clausole SID e TYPE per creare utenti per le entità di Microsoft Entra. Il nome principale specificato non viene convalidato in Microsoft Entra. È responsabilità dell'applicazione (sviluppatore di applicazioni) specificare un nome valido e un SID valido e un tipo di oggetto utente.
Se l'entità specificata è un utente o un gruppo in Microsoft Entra, il SID deve essere un ID oggetto di tale utente o gruppo in Microsoft Entra. Se l'entità servizio specificata è un'entità servizio in Microsoft Entra, il SID deve essere un ID applicazione (ID client) dell'entità servizio in Microsoft Entra. Gli ID oggetto e gli ID applicazione (ID client) ottenuti da Microsoft Entra devono essere convertiti in binary(16).
Il valore dell'argomento TYPE deve essere:
-
E- se l'entità Microsoft Entra specificata è un utente o un'entità servizio. -
X: se l'entità di Microsoft Entra specificata è un gruppo.
Lo script di esempio T-SQL seguente crea un utente del database per l'utente Microsoft Entra, denominato bob@contoso.com, impostando il SID del nuovo utente sull'ID oggetto dell'utente Microsoft Entra. L'identificatore univoco dell'ID oggetto dell'utente viene convertito e quindi concatenato in un'istruzione CREATE USER . Sostituire <unique identifier sid> con l'ID oggetto dell'utente in 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);
Nell'esempio seguente viene creato un utente di database per l'entità servizio Microsoft Entra denominata HRApp, impostando il SID del nuovo utente sull'ID client dell'entità servizio in 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);
Nell'esempio seguente viene creato un utente di database per il gruppo di Microsoft Entra denominato HR, impostando il SID del nuovo utente sull'ID oggetto del gruppo.
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);
Limiti
- Microsoft Entra ID è l'unico provider di identità che il database SQL di Fabric supporta. In particolare, l'autenticazione SQL non è supportata.
- Le login (principali del server) non sono supportate.
- Attualmente, l'unico criterio di connessione supportato per il database SQL in Microsoft Fabric è Default. Per altre informazioni, vedere Criteri di connessione.