Compartilhar via


Gerenciar funções do Postgres

Importante

Esse recurso está em Visualização Pública nas seguintes regiões: westus, , westus2, eastus, eastus2, centralus, southcentralus, , northeurope, westeurope, , australiaeast, , brazilsouth, , canadacentral, , centralindia, , southeastasiauksouth.

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

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

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

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

Crie funções do 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. Verifique se você tem o nível apropriado de acesso antes de tentar gerenciar funções.

interface do usuário

Os usuários com CAN USE permissão na instância do 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, incluindo com privilégios adicionais, e remover funções para qualquer identidade do Azure Databricks.

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

  1. Clique no ícone aplicativo.Aplicativos no canto superior direito e selecione Lakebase Postgres.
  2. Clique em Provisionado para abrir a página Instâncias Provisionadas.
  3. Selecione sua instância de banco de dados.
  4. Selecione a página Funções na barra lateral do Aplicativo Lakebase.
  5. Clique em Adicionar função no canto superior direito.
  6. No menu suspenso Principal, selecione um usuário, grupo ou entidade de serviço que você deseja conceder acesso ao banco de dados. Você deve selecionar uma identidade do Azure Databricks que ainda não tenha uma função Postgres na instância.
  7. (Opcional) Selecione Funções do Sistema a serem concedidas:
    • databricks_superuser: concede acesso de leitura e gravação a todos os dados. Essa é uma função administrativa com privilégios amplos que herda de pg_read_all_data, pg_write_all_datae pg_monitor. Consulte as funções e permissões pré-criadas.
  8. (Opcional) Selecione Atributos do Sistema para conceder recursos específicos:
    • CREATEDB: concede permissão para criar novos bancos de dados.
    • CREATEROLE: concede permissão para criar novas funções.
    • BYPASSRLS: Concede permissão para ignorar políticas de segurança em nível de linha (RLS).
  9. Clique em Adicionar.

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 fazer login no Postgres usando uma identidade do Azure Databricks (usuário, princípio de serviço ou grupo). As sessões autenticadas do Postgres nativo não podem criar funções do Azure Databricks.
  • Seu token de autenticação deve ser válido e não ter expirado no momento da criação da função.

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

  1. Crie a extensão databricks_auth. 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. A função ainda não deve existir. Se existir uma função com o mesmo nome, solte-a antes de criar a função baseada em identidade do Azure Databricks.

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

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

    • Usuário do Azure Databricks:

      • identity_name: Email do usuário, por exemplo, myuser@databricks.com
      • tipo_de_identidade: USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Principal de Serviço do Azure Databricks:

      • 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');
      
    • Grupo do Azure Databricks:

      • 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 apenas tem privilégios concedidos à PUBLIC após a criação. Para conceder ou revogar privilégios adicionais, use os comandos padrão de gerenciamento de privilégios do Postgres GRANT e REVOKE.

    Conceda permissão de leitura à função para acessar 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>;
    

    Revogue 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

interface do usuário

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

  1. Clique no ícone aplicativo.Aplicativos no canto superior direito e selecione Lakebase Postgres.
  2. Clique em Provisionado para abrir a página Instâncias Provisionadas.
  3. Selecione sua instância de banco de dados.
  4. Selecione a página Funções na barra lateral do Aplicativo Lakebase.

PostgreSQL

Use consultas PostgreSQL para listar todos os roles de identidade do Azure Databricks criados por padrão e, usando a função databricks_create_role, use a função databricks_list_roles na extensão databricks_auth. Isso lista todos os usuários, entidades de serviço e grupos do Azure Databricks adicionados para autenticar como funções do Postgres.

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

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

interface do usuário

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

  1. Clique no ícone aplicativo.Aplicativos no canto superior direito e selecione Lakebase Postgres.
  2. Clique em Provisionado para abrir a página Instâncias Provisionadas.
  3. Selecione sua instância de banco de dados.
  4. Selecione a página Funções na barra lateral do Aplicativo Lakebase.
  5. Para a função que você deseja remover, clique no ícone de menu Kebab. No lado direito da linha.
  6. Clique em Soltar.
  7. (Opcional) Se a função possuir objetos, ative reatribuir objetos de propriedade para habilitar a remoção da função. Essa opção reatribui objetos de propriedade para outra função antes de remover. Alguns objetos (como concessões para a função que está sendo removida) não são reatribuíveis e são removidos após a reatribuição de todos os objetos reatribuíveis.
  8. Clique em Confirmar.

PostgreSQL

Uma função Postgres baseada em identidade do Azure Databricks pode ser excluída da mesma forma que qualquer outra função Postgres. Para obter mais detalhes, consulte a documentação do PostgreSQL sobre como remover 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.