Partilhar via


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 Ler item para o banco de dados na Malha. Para obter informações sobre como conceder a uma identidade do Microsoft Entra acesso a um espaço de trabalho de malha ou a um banco de dados específico, consulte Controles de acesso de malha.

Para localizar a cadeia de conexão com seu banco de dados SQL no Fabric, consulte Conectar-se ao seu banco de dados SQL no Microsoft Fabric.

Nota

Para permitir que as entidades de serviço se conectem ao Fabric e aos bancos de dados SQL, você também precisa habilitar a configuração de locatário do Fabric APIs do Fabric. Para saber como habilitar as configurações do locatário, consulte Configurações do locatário da malha.

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:

Os aplicativos e ferramentas devem atualizar os drivers para versões que ofereçam suporte à autenticação do Microsoft Entra e adicionar uma palavra-chave do modo de autenticação em sua cadeia de conexão SQL, como ActiveDirectoryInteractive, ActiveDirectoryServicePrincipalou ActiveDirectoryPassword.

Criar usuários de banco de dados para identidades do Microsoft Entra

Se você planeja configurar controles de acesso SQL com Transact-SQL, primeiro precisa 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 é necessária se você usar controles de acesso de malha (funções de espaço de trabalho 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 a partir do portal de malha - o portal cria usuários automaticamente quando necessário.

Criar usuários de banco de dados quando conectado como um usuário do Microsoft Entra

Quando você estiver conectado ao seu banco de dados como um usuário do Microsoft Entra, você deve usar CREATE USER com a cláusula FROM EXTERNAL PROVIDER para criar usuários para entidades do Microsoft Entra. FROM EXTERNAL PROVIDER valida o nome principal especificado com o Microsoft Entra, recupera o identificador principal (ID de objeto do usuário ou grupo, ID do aplicativo ou ID do cliente) e armazena o identificador como identificador de segurança do usuário (SID) em metadados SQL. Você deve ser membro da função Leitores de Diretório no Microsoft Entra ao usar a FROM EXTERNAL PROVIDER cláusula. Os scripts T-SQL de exemplo a seguir são usados 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 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 as cláusulas SID e TYPE para criar usuários para entidades do Microsoft Entra. O nome principal especificado não é validado no Microsoft Entra. É uma 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 de aplicativo (ID do cliente) da entidade de serviço no Microsoft Entra. As IDs de objeto e as IDs de aplicativo (IDs de cliente) obtidas do Microsoft Entra devem ser convertidas em binárias(16).

O valor do TYPE argumento deve ser:

  • E - se a entidade de segurança especificada do Microsoft Entra for um utilizador ou uma entidade de serviço.
  • X - se a entidade de segurança especificada do Microsoft Entra 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 para a ID do objeto do usuário do Microsoft Entra. O identificador exclusivo do ID de objeto do usuário é convertido e, em seguida, concatenado em uma CREATE USER instrução. 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 como 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 que o banco de dados SQL no Fabric suporta. Especificamente, a autenticação SQL não é suportada.
  • Não há suporte para logins (entidades de servidor).