Autenticação no banco de dados SQL no Microsoft Fabric
Aplica-se a:✅banco de dados SQL no Microsoft Fabric
Este artigo explica a autenticação para bancos de dados SQL.
Como outros tipos de item do Microsoft Fabric, os bancos de dados SQL dependem da autenticação do Microsoft Entra.
Para autenticar com êxito em um banco de dados SQL, um usuário do Microsoft Entra, uma entidade de serviço ou seu grupo deve ter a permissão de item de leitura para o banco de dados no Fabric. Para obter informações sobre como conceder acesso de identidade do Microsoft Entra a um espaço de trabalho do Fabric ou a um banco de dados específico, consulte Controles de acesso do Fabric.
Para localizar a cadeia de conexão com o banco de dados SQL no Fabric, consulte Conectar-se ao banco de dados SQL no Microsoft Fabric.
Observação
Para habilitar entidades de serviço para se conectar ao Fabric e aos bancos de dados SQL, você também precisa habilitar a configuração de locatário do Fabric As entidades de serviço podem usar APIs do Fabric. Para saber como habilitar as configurações de locatário, consulte Configurações de locatário do Fabric.
Conectar-se a um banco de dados SQL usando a autenticação do Microsoft Entra
Você pode se conectar a um banco de dados usando a autenticação do Microsoft Entra com:
- Ferramentas SQL que dão suporte à autenticação do Microsoft Entra, incluindo SQL Server Management Studio e a extensão mssql com Visual Studio Code.
- Aplicativos que usam drivers de cliente SQL que dão suporte à autenticação do Microsoft Entra, incluindo SqlClient, JDBC, ODBC e OLE DB.
Aplicativos e ferramentas devem atualizar drivers para versões que dão suporte à autenticação do Microsoft Entra e adicionar uma palavra-chave de modo de autenticação em sua cadeia de conexão SQL, como ActiveDirectoryInteractive
, ActiveDirectoryServicePrincipal
ou ActiveDirectoryPassword
.
Criar usuários de banco de dados para identidades do Microsoft Entra
Se você planeja configurar controles de acesso SQL com o Transact-SQL, primeiro precisará criar usuários de banco de dados correspondentes às suas identidades do Microsoft Entra - usuários, entidades de serviço ou seus grupos - com CREATE USER (Transact-SQL).
A criação de usuários de banco de dados não será necessária se você usar controles de acesso do Fabric (funções de workspace ou permissões de item). Você também não precisa criar usuários ao gerenciar funções no nível do banco de dados SQL no portal do Fabric: o portal cria automaticamente usuários quando necessário.
Criar usuários de banco de dados quando conectados como um usuário do Microsoft Entra
Quando estiver conectado ao banco de dados como um usuário do Microsoft Entra, você deverá usar CREATE USER
com a cláusula FROM EXTERNAL PROVIDER para criar usuários para entidades de segurança do Microsoft Entra. FROM EXTERNAL PROVIDER
valida o nome da entidade de segurança especificada com o Microsoft Entra, recupera o identificador principal (ID do objeto do usuário ou do grupo, ID do aplicativo ou ID do cliente) e armazena o identificador como SID (identificador de segurança) do usuário nos metadados do SQL. Você deve ser membro da função Leitores de Diretório no Microsoft Entra ao usar a cláusula FROM EXTERNAL PROVIDER
. Os scripts T-SQL de exemplo a seguir usam FROM EXTERNAL PROVIDER
para criar um usuário com base em um usuário do Microsoft Entra, uma entidade de serviço no Microsoft Entra ou em um grupo no 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;
Criar usuários de banco de dados quando conectados como uma entidade de serviço do Microsoft Entra
Quando um aplicativo está conectado a um banco de dados com uma entidade de serviço, o aplicativo deve emitir CREATE USER
com as cláusulas SID e TYPE para criar usuários para entidades de segurança do Microsoft Entra. O nome da entidade de segurança especificado não é validado no Microsoft Entra. É responsabilidade do aplicativo (desenvolvedor de aplicativos) fornecer um nome válido e um SID válido e um tipo de objeto de usuário.
Se a entidade de segurança especificada for um usuário ou um grupo no Microsoft Entra, o SID deverá ser uma ID de objeto desse usuário ou grupo no Microsoft Entra. Se a entidade de segurança especificada for uma entidade de serviço no Microsoft Entra, o SID deverá ser uma ID do aplicativo (ID do cliente) da entidade de serviço no Microsoft Entra. IDs de objeto e IDs de aplicativo (IDs do cliente) obtidas do Microsoft Entra devem ser convertidas em binário(16).
O valor do argumento TYPE
deve ser:
E
- se a entidade de segurança do Microsoft Entra especificada for um usuário ou uma entidade de serviço.X
- se a entidade de segurança do Microsoft Entra especificada for um grupo.
O script de exemplo T-SQL a seguir cria um usuário de banco de dados para o usuário do Microsoft Entra, chamado bob@contoso.com
, definindo o SID do novo usuário como a ID do objeto do usuário do Microsoft Entra. O identificador exclusivo da ID do objeto do usuário é convertido e concatenado em uma instrução CREATE USER
. Substitua <unique identifier sid>
pela ID do objeto do usuário no 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);
O exemplo a seguir cria um usuário de banco de dados para a entidade de serviço do Microsoft Entra, chamada HRApp
, definindo o SID do novo usuário para a ID do cliente da entidade de serviço no 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);
O exemplo a seguir cria um usuário de banco de dados para o grupo Microsoft Entra, chamado HR
, definindo o SID do novo usuário para a ID do objeto do grupo.
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);
Limitações
- O Microsoft Entra ID é o único provedor de identidade compatível com o banco de dados SQL no Fabric. Especificamente, não há suporte para a autenticação SQL.
- Não há suporte para logons (entidades de servidor).
Conteúdo relacionado
- CREATE USER (Transact-SQL)
- ALTER USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Criar um usuário de banco de dados
- Logons do Microsoft Entra e usuários com nomes de exibição não exclusivos (versão prévia)
- Autorização no banco de dados SQL no Microsoft Fabric
- Conectar-se ao banco de dados SQL no Microsoft Fabric