Pular para o conteúdo principal

Gerenciar funções do Postgres

info

Beta

O Lakebase Postgres (beta com escalonamento automático) é a próxima versão do Lakebase, disponível apenas para avaliação. Para cargas de trabalho de produção, utilize a versão de pré-visualização pública do Lakebase. Consulte a seção "Como escolher entre as versões" para entender qual versão é a mais adequada para você.

Ao criar um projeto de banco de dados, o Lakebase cria várias funções do Postgres no projeto:

  • Uma função do Postgres para a identidade do proprietário do projeto Databricks (por exemplo, user@databricks.com), que possui o banco de dados default databricks_postgres
  • Uma função administrativa databricks_superuser

O banco de dados databricks_postgres é criado para que você possa se conectar e experimentar o Lakebase imediatamente após a criação do projeto.

Diversas funções de gerenciamento de sistema também são criadas. Estas são funções internas utilizadas pelo serviço Databricks para gerenciamento, monitoramento e operações de dados.

Saiba mais: Funções pré-criadas e Funções do sistema

Criar funções do Postgres

O Lakebase suporta dois tipos de funções do Postgres para acesso ao banco de dados:

  • Funções de senha nativas do Postgres: Crie-as usando a interface do usuário do Lakebase ou SQL. Utilize qualquer nome de função válido com autenticação por senha.
  • Funções OAuth para identidades Databricks: Crie-as usando a extensão databricks_auth e SQL. Permite que outras identidades do Databricks se conectem usando tokens OAuth.

Saiba mais sobre métodos de autenticação: Autenticação

Crie uma função de senha nativa do Postgres

Você pode criar funções de senha nativas do Postgres usando a interface do usuário do Lakebase ou o comando SQL padrão.

Utilizando a interface do usuário:

  1. No aplicativo Lakebase, navegue até a página de visão geral da sua filial e, em seguida, até a tab Funções e Bancos de Dados da filial.
  2. Clique em Adicionar função e especifique um nome para a função (qualquer nome de função válido do Postgres).

Adicionar uma função do Postgres

  1. Clique em Criar .
  2. Copie a senha gerada e forneça-a em local seguro ao usuário que utilizará essa função.

A interface do usuário do Lakebase gera automaticamente uma senha segura com entropia de 60 bits. As funções criadas através da interface do usuário recebem automaticamente a associação à função databricks_superuser , que fornece amplos privilégios de banco de dados.

Utilizando SQL:

Você também pode criar funções de senha nativas do Postgres usando o comando SQL padrão do Postgres:

SQL
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';

Ao criar funções com SQL, a senha deve ter pelo menos 12 caracteres, com uma combinação de letras minúsculas, maiúsculas, números e símbolos. As senhas definidas pelo usuário são validadas no momento da criação para garantir entropia de 60 bits.

Crie uma função OAuth para uma identidade do Databricks usando SQL.

Para permitir que outras identidades Databricks (usuários, entidades de serviço ou grupos) se conectem usando tokens OAuth , você deve criar suas funções do Postgres usando a extensão databricks_auth .

Pré-requisitos:

  • Você deve ter permissões CREATE e CREATE ROLE no banco de dados.
  • Você precisa estar autenticado como uma identidade Databricks com um token OAuth válido.
  • Sessões autenticadas nativas do Postgres não podem criar funções OAuth.

Para criar uma função OAuth:

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

    SQL
    CREATE EXTENSION IF NOT EXISTS databricks_auth;
  2. Use a função databricks_create_role para criar uma função do Postgres para a identidade do Databricks:

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

    Para um usuário do Databricks:

    SQL
    SELECT databricks_create_role('myuser@databricks.com', 'USER');

    Para uma entidade de serviço Databricks:

    SQL
    SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');
  3. Conceda permissões de banco de dados à função recém-criada.

A função databricks_create_role() cria uma função do Postgres com permissão LOGIN apenas. Após criar a função, você deve conceder os privilégios e permissões de banco de dados apropriados nos bancos de dados, esquemas ou tabelas específicos que o usuário precisa acessar. Aprenda como: gerenciar permissões

nota

Os nomes dos cargos não podem exceder 63 caracteres, e alguns nomes não são permitidos. Saiba mais: funções gerenciais

visualizar funções do Postgres

Para view todas as funções do Postgres em seu projeto, navegue até tab Funções e Bancos de Dados do seu branch no aplicativo Lakebase. Todas as funções criadas na ramificação, com exceção das funções do sistema, estão listadas, incluindo as funções nativas do Postgres com autenticação por senha.

visualizar função do Postgres

Remover uma função do Postgres

Você pode remover tanto as funções baseadas em identidade do Databricks quanto as funções nativas de senha do Postgres.

Excluir uma função é uma ação permanente que não pode ser desfeita. Não é possível excluir uma função que seja proprietária de um banco de dados. O banco de dados deve ser excluído antes de excluir a função proprietária do banco de dados.

Para excluir qualquer função do Postgres usando a interface do usuário:

  1. Acesse a tab "Funções e Bancos de Dados" da sua filial no aplicativo Lakebase.
  2. Selecione "Excluir função" no menu de funções e confirme a exclusão.

Funções pré-criadas

Após a criação de um projeto de banco de dados, Databricks cria automaticamente funções do Postgres para administração do projeto e para que os usuários possam começar a usá-las.

Função

Descrição

Privilégios herdados

<project_owner_role>

A identidade Databricks do criador do projeto (por exemplo, my.user@databricks.com). Esta função é proprietária do banco de dados default databricks_postgres e pode log in e administrar o projeto.

Membro de databricks_superuser

databricks_superuser

Uma função administrativa interna. Utilizado para configurar e gerenciar o acesso em todo o projeto. Este cargo confere amplos privilégios.

Herda de pg_read_all_data, pg_write_all_data e pg_monitor.

Saiba mais sobre as capacidades e privilégios específicos dessas funções: Capacidades de funções pré-criadas

Funções do sistema criadas pelo Databricks

Databricks cria as seguintes funções de sistema necessárias para o serviço interno. Você pode view essas funções emitindo um comando \du a partir de psql ou do Editor SQL do Lakebase.

Função

Propósito

cloud_admin

Função de superusuário usada para gerenciamento de infraestrutura cloud .

databricks_control_plane

Função de superusuário usada por componentes internos do Databricks para operações de gerenciamento.

databricks_monitor

Utilizado pelo serviço de coleta de medições internas

databricks_replicator

Utilizado para operações de replicação de banco de dados

databricks_writer_<dbid>

Função por banco de dados usada para criar e gerenciar tabelas sincronizadas.

databricks_reader_<dbid>

Função por banco de dados usada para ler tabelas registradas no Unity Catalog

databricks_gateway

Utilizado para conexões internas para gerenciamento de serviço de atendimento de dados

Para aprender como funcionam os papéis, privilégios e associações de papéis no Postgres, utilize o seguinte recurso na documentação do Postgres:

Próximos passos