Partilhar via


Gerenciar funções do Postgres

Importante

Esta funcionalidade está na Pré-visualização Pública nas seguintes regiões: westus, westus2, eastus, eastus2, centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiauksouth.

Uma função Postgres para a identidade do Azure Databricks do proprietário da instância de banco de dados Lakebase é criada automaticamente.

Inicialmente, apenas o proprietário da instância pode fazer login e acessar a instância por meio do Postgres. Para permitir que outras identidades do Azure Databricks façam logon na instância do banco de dados, a identidade do Azure Databricks deve ter uma função Postgres correspondente.

Esta página descreve como adicionar e gerenciar funções adicionais baseadas em identidade do Azure Databricks no PostgreSQL.

Criar funções Postgres e conceder privilégios para identidades do Azure Databricks

Crie funções Postgres usando a interface do usuário do Azure Databricks ou consultas PostgreSQL.

Observação

As ações de gerenciamento de função são regidas pelas permissões concedidas na instância do banco de dados. Certifique-se de ter o nível apropriado de acesso antes de tentar gerenciar funções.

IU

Os usuários com CAN USE permissão na instância de banco de dados podem exibir as funções existentes do Postgres associadas às identidades do Azure Databricks ou adicionar uma função para sua própria identidade à instância.

Além disso, os usuários com CAN MANAGE podem criar funções para outras identidades do Azure Databricks, inclusive com privilégios adicionais, e descartar funções para qualquer identidade do Azure Databricks.

Você pode atribuir permissões adicionais a quaisquer usuários, grupos ou entidades de serviço desejados na página Visão geral das instâncias de banco de dados .

  1. Clique em Computação na barra lateral do espaço de trabalho.

  2. Clique em Instâncias de banco de dados.

  3. Clique na guia Permissões .

  4. Clique em Adicionar função PostgreSQL no canto superior direito.

  5. Para Identidade do espaço de trabalho, insira um usuário, grupo ou entidade de serviço e selecione a identidade do Azure Databricks. Você deve selecionar uma identidade do Azure Databricks que ainda não tenha uma função Postgres na instância.

  6. Selecione uma associação de função. Se você tiver CAN MANAGE permissão na instância do banco de dados, poderá adicionar associação à função databricks_superuser e habilitar alguns atributos dessa função.

  7. Selecione quais atributos do PostgreSQL conceder à nova função.

    • CREATEDB: concede permissão para criar novos bancos de dados
    • CREATEROLE: concede permissão para criar novas funções
    • BYPASS RLS: concede autorização para ignorar toda a segurança ao nível de linha na instância
  8. Clique em Confirmar.

PostgreSQL

Antes de criar novas funções do Postgres, verifique se você atende aos seguintes requisitos:

  • Você deve ter as permissões CREATE e CREATE ROLE no banco de dados.
  • Você deve autenticar e iniciar sessão no Postgres com uma identidade do Azure Databricks (como um usuário, entidade de serviço ou grupo). As sessões autenticadas nativas do Postgres não podem criar funções do Azure Databricks.
  • Seu token de autenticação deve ser válido e não expirado no momento da criação da função.

Utilize a função databricks_create_role para adicionar e criar funções baseadas em identidade PostgreSQL do Azure Databricks. A extensão databricks_auth personalizada do PostgreSQL fornece a databricks_create_role função.

  1. Crie a databricks_auth extensão. Cada banco de dados Postgres deve ter sua própria extensão.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. Use a databricks_create_role função para adicionar e criar novas funções Postgres para identidades do Azure Databricks. O papel não pode já existir. Se existir uma função com o mesmo nome, largue-a antes de criar a função baseada em identidade do Azure Databricks.

    SELECT databricks_create_role('identity_name', 'identity_type');
    

    Os parâmetros identity_name e identity_type dependem do tipo de identidade do Azure Databricks:

    • Usuário do Azure Databricks:

      • identity_name: E-mail do usuário, por exemplo, myuser@databricks.com
      • tipo_de_identidade: USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Azure Databricks Service Principal:

      • identity_name: ID do aplicativo da entidade de serviço, por exemplo, 8c01cfb1-62c9-4a09-88a8-e195f4b01b08
      • tipo_de_identidade: SERVICE_PRINCIPAL
      SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL');
      
    • Azure Databricks Group:

      • identity_name: Nome do grupo (sensível a maiúsculas e minúsculas): My Group 123
      • tipo_de_identidade: GROUP
      SELECT databricks_create_role('My Group 123','GROUP');
      
  3. Uma função criada usando databricks_create_role só tem privilégios concedidos ao PUBLIC após a criação. Para conceder ou revogar privilégios adicionais, use os comandos GRANT padrão de gerenciamento de privilégios do Postgres e REVOKE.

    Dê à função permissão de leitura para aceder a uma tabela.

    GRANT SELECT ON "my_schema"."my_table" TO <role-name>;
    

    Remova o acesso de gravação a uma tabela da função.

    REVOKE INSERT, UPDATE, DELETE ON TABLE "my_schema"."my_table" FROM <role-name>;
    

    Revogar todo o acesso a um banco de dados da função.

    REVOKE CONNECT ON DATABASE "example_database" FROM <role-name>;
    

Exibir funções de identidade do Azure Databricks

IU

Você pode ver quais usuários, grupos e entidades de serviço têm uma função Postgres correspondente na página Visão geral das instâncias de banco de dados .

  1. Clique em Computação na barra lateral do espaço de trabalho.
  2. Clique em Instâncias de banco de dados.
  3. Clique na guia Permissões .

PostgreSQL

Use consultas PostgreSQL para listar todas as funções de identidade do Azure Databricks criadas por defeito e, ao usar a função databricks_create_role, utilize a função databricks_list_roles na extensão databricks_auth. Isso lista todos os utilizadores, entidades de serviço e grupos do Azure Databricks adicionados para autenticar como roles de Postgres.

CREATE EXTENSION IF NOT EXISTS databricks_auth;
SELECT * from databricks_list_roles;

Soltar uma função Postgres baseada em identidade do Azure Databricks

IU

Eliminar uma função não pode ser desfeito. Você pode recriar uma função, mas qualquer reatribuição de propriedade de objeto é irreversível sem descartar a nova função que possui objetos reatribuídos.

  1. Clique em Computação na barra lateral do espaço de trabalho.
  2. Clique em Instâncias de banco de dados.
  3. Clique na guia Permissões .
  4. Para a função de identidade que quer remover, no lado mais à direita, clique no ícone do menu kebab..
  5. Clique em Soltar função.
  6. Caso precise remover um papel que possua objetos, ative Reatribuir objetos próprios. Isso reatribuirá todos os objetos de propriedade reatribuíveis (bancos de dados, esquemas e tabelas) à outra função e, em seguida, descartará quaisquer objetos de propriedade não reatribuíveis.
  7. Clique em Confirmar.

PostgreSQL

Uma função Postgres baseada em identidade do Azure Databricks pode ser descartada e removida da mesma forma que qualquer outra função do Postgres. Para obter mais detalhes, consulte a documentação do PostgreSQL sobre como descartar funções. Depois que uma função baseada em identidade do Azure Databricks é descartada, ela não pode ser usada para autenticação baseada em token e acesso ao Postgres.