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:✅Database relazionale SQL in Microsoft Fabric
Questo articolo illustra l'autenticazione per i database SQL.
Analogamente ad altri tipi di elementi di Microsoft Fabric, i database SQL si basano sull'autenticazione Microsoft Entra.
Per eseguire correttamente l'autenticazione a un database SQL, un utente di Microsoft Entra, un service principal o il loro gruppo deve disporre dell'autorizzazione di lettura per il database in Fabric. Per informazioni su come concedere a un'identità di Microsoft Entra l'accesso a un'area di lavoro Fabric o a un database specifico, vedere Controlli di accesso Fabric.
Per trovare il stringa di connessione al 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 di Microsoft Entra, inclusi SQL Server Management Studio e l'estensione mssql con Visual Studio Code.
- Applicazioni che usano driver client SQL che supportano l'autenticazione di Microsoft Entra, inclusi SqlClient, JDBC, ODBC e OLE DB.
Le applicazioni e gli strumenti devono aggiornare i driver alle versioni che supportano l'autenticazione di Microsoft Entra e aggiungere una parola chiave della modalità di autenticazione nel relativo
Creare utenti di 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à di 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 di Microsoft Entra
Quando si è connessi al database come utente di Microsoft Entra, è opportuno utilizzare CREATE USER
con la clausola FROM EXTERNAL PROVIDER per creare utenti per i principali di Microsoft Entra.
FROM EXTERNAL PROVIDER
convalida il nome dell'entità specificato con Microsoft Entra, recupera l'identificatore principale (ID oggetto dell'utente o del gruppo, ID applicazione o ID client) e archivia l'identificatore come SID (Security Identifier) dell'utente nei metadati SQL. È necessario essere membri del ruolo Lettori della directory in Microsoft Entra quando si usa la clausola FROM EXTERNAL PROVIDER
. Gli script T-SQL di esempio seguenti usano FROM EXTERNAL PROVIDER
per creare un utente basato su un utente di Microsoft Entra, un'entità servizio in Microsoft Entra o un gruppo in Microsoft Entra.
-- Create a user for a Microsoft Entra user
CREATE USER [[email protected]] 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 principale del servizio, l'applicazione deve utilizzare 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 client (ID applicazione) 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 principale di servizio. -
X
- se l'entità Microsoft Entra specificata è un gruppo.
Lo script di esempio T-SQL seguente crea un utente di database per l'utente di Microsoft Entra, denominato [email protected]
, 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 = '[email protected]';
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 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 database SQL del provider di identità supportato da Fabric. 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 è Reindirizzamento. Per altre informazioni, vedere criteri di connessione .