Partilhar via


Autenticação na base de dados SQL no Microsoft Fabric

Aplica-se a:base de dados SQL em Microsoft Fabric

Este artigo explica a autenticação para bancos de dados SQL.

Tal como outros tipos de itens Microsoft Fabric, as bases de dados SQL dependem da autenticação Microsoft Entra.

Para autenticar-se com sucesso numa base de dados SQL, um utilizador Microsoft Entra, um principal de serviço, ou o seu grupo, deve ter a permissão de leitura para a base de dados no Fabric. Para informações sobre como conceder a uma identidade Microsoft Entra acesso a um espaço de trabalho Fabric ou a uma base de dados específica, consulte Controlos de acesso do Fabric.

Para encontrar a cadeia de ligação da sua base de dados SQL no Fabric, consulte Conectar à sua base de dados SQL no Microsoft Fabric.

Nota

Para permitir que os principais de serviço se conectem ao Fabric e aos bancos de dados SQL, você também precisa habilitar a definição de locatário do Fabric "os principais de serviço podem usar as APIs do Fabric". Para saber como ativar as definições do inquilino, consulte Configurações do Inquilino.

Ligue-se a uma base de dados SQL usando autenticação Microsoft Entra

Pode ligar-se a uma base de dados usando autenticação Microsoft Entra com:

As aplicações e ferramentas devem atualizar os drivers para versões que suportem autenticação Microsoft Entra e adicionar uma palavra-chave em modo de autenticação no seu SQL connection string, como ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal ou ActiveDirectoryPassword.

Criar utilizadores de base de dados para identidades do Microsoft Entra

Se planeia configurar controlos de acesso SQL com Transact-SQL, primeiro precisa de criar utilizadores de base de dados correspondentes às suas identidades Microsoft Entra - utilizadores, entidades de serviço ou seus grupos - com CRIAR UTILIZADOR (Transact-SQL).

A criação de utilizadores da base de dados não é necessária se utilizar Fabric Access Controls (Funções de Espaço de Trabalho ou Permissões de Itens). Você também não precisa criar utilizadores ao gerir funções ao nível da base de dados SQL a partir do portal Fabric - o portal cria utilizadores automaticamente quando necessário.

Criar utilizadores na base de dados quando ligado como um utilizador Microsoft Entra

Quando estiver ligado à sua base de dados como utilizador Microsoft Entra, deve usar CREATE USER com a cláusula FROM EXTERNAL PROVIDER para criar utilizadores para Microsoft Entra principais. FROM EXTERNAL PROVIDER valida o nome principal especificado com Microsoft Entra, recupera o identificador principal (ID de objeto, ID de aplicação ou ID de cliente do utilizador ou grupo) e armazena o identificador como identificador de segurança (SID) do utilizador em metadados SQL. Deve ser membro da função Leitores de Diretório em Microsoft Entra ao usar a cláusula FROM EXTERNAL PROVIDER. Os seguintes scripts de exemplo T-SQL usam FROM EXTERNAL PROVIDER para criar um utilizador baseado num utilizador Microsoft Entra, um principal de serviço em Microsoft Entra ou um grupo em 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 utilizadores de base de dados ao ligar-se como um principal de serviço do Microsoft Entra

Quando uma aplicação está ligada a uma base de dados com um principal de serviço, a aplicação deve emitir CREATE USER com as cláusulas SID e TYPE para criar utilizadores para principais 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 o principal especificado for um utilizador ou grupo na Microsoft Entra, o SID deve ser um ID de objeto desse utilizador ou grupo na Microsoft Entra. Se o principal especificado for um principal de serviço no Microsoft Entra, o SID deve ser um ID de aplicação (ID de cliente) do principal de serviço no Microsoft Entra. IDs de objetos e IDs de aplicação (IDs de cliente) obtidos a partir de Microsoft Entra devem ser convertidos para binary(16).

O valor do TYPE argumento deve ser:

  • E - se o principal de Microsoft Entra especificado for um utilizador ou um principal de serviço.
  • X - se o principal de Microsoft Entra especificado for um grupo.

O seguinte script de exemplo T-SQL cria um utilizador de base de dados para o utilizador Microsoft Entra, chamado bob@contoso.com, definindo o SID do novo utilizador para o ID do objeto do utilizador Microsoft Entra. O identificador exclusivo do ID de objeto do usuário é convertido e, em seguida, concatenado numa CREATE USER instrução. Substitua <unique identifier sid> pelo ID do objeto do utilizador em 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 seguinte cria um utilizador de base de dados para o principal de serviço Microsoft Entra, chamado HRApp, definindo o SID do novo utilizador para o ID do cliente do principal de serviço em 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 seguinte cria um utilizador de base de dados para o grupo Microsoft Entra, chamado HR, definindo o SID do novo utilizador para o 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 [' + @group_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Limitações

  • O Microsoft Entra ID é o único provedor de identidade suportado pela base de dados SQL no Fabric. Especificamente, a autenticação SQL não é suportada.
  • Não há suporte para logins (entidades de servidor).
  • Atualmente, a única política de ligação suportada para base de dados SQL em Microsoft Fabric é Default. Para obter mais informações, consulte Política de conexão.