Permissões granulares do SQL no Microsoft Fabric

Aplica-se a:✅ ponto de extremidade de análise SQL e o Warehouse no Microsoft Fabric

Quando as permissões padrão da atribuição de função no workspace ou as permissões do item não derem o nível de controle de que você precisa, use construções SQL padrão em um warehouse do Fabric ou em um ponto de extremidade de análise SQL para obter um controle de acesso mais granular.

Para o endpoint de análise SQL e o Warehouse no Microsoft Fabric:

  • Gerencie a segurança no nível do objeto com as instruções GRANT, REVOKE e DENY T-SQL.
  • Atribua usuários a funções SQL, funções de banco de dados personalizadas e funções de banco de dados internas.

Configurar permissões granulares do usuário em um Fabric warehouse

  • Para que um usuário se conecte a um warehouse do Fabric ou a um ponto de extremidade de análise SQL, você deve atribuir a ele uma função em um workspace ou conceder a ele a permissão Leitura no item. Sem a permissão de Leitura no mínimo, a conexão falha.
  • Para configurar as permissões granulares de um usuário antes de se conectar ao warehouse, defina as permissões no SQL primeiro. Em seguida, dê a eles acesso atribuindo uma função no espaço de trabalho ou concedendo permissões para o item.

Limitação do CREATE USER

  • Não é possível executar diretamente CREATE USER em um warehouse do Fabric ou em um endpoint de análise SQL. Quando você executa GRANT ouDENY, Fabric cria o usuário do banco de dados automaticamente. O usuário não conseguirá se conectar até também ter permissões suficientes no nível do workspace.

Exibir minhas permissões

Depois que um usuário se conecta a um warehouse do Fabric ou a um ponto de extremidade de análise SQL por meio da cadeia de conexão SQL, ele pode exibir as permissões disponíveis para si usando a função sys.fn_my_permissions.

Permissões com escopo de banco de dados para o usuário atual:

SELECT *
FROM sys.fn_my_permissions(NULL, 'Database');

Permissões com escopo de esquema para o usuário atual:

SELECT *
FROM sys.fn_my_permissions('<schema-name>', 'Schema');

Permissões com escopo de objeto para o usuário atual:

SELECT *
FROM sys.fn_my_permissions('<schema-name>.<object-name>', 'Object');

Exibir permissões concedidas explicitamente aos usuários em um Fabric warehouse

Ao se conectar a um warehouse do Fabric ou a um ponto de extremidade de análise SQL por meio da cadeia de conexão SQL, um usuário com permissões elevadas pode consultar as permissões concedidas por meio de exibições do sistema. Essa consulta não retorna permissões que os usuários recebem por meio de uma função ou item de workspace Fabric.

SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc,
    pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id;

Recursos de proteção de dados em um Fabric warehouse

No Warehouse e no endpoint analítico SQL, você pode restringir o acesso a colunas específicas e a linhas específicas em uma tabela, além de mascarar dados confidenciais para usuários não administradores.