gerenciar funções do Postgres
Visualização
Esse recurso está em Public Preview nas seguintes regiões: us-east-1, us-west-2, eu-west-1, ap-southeast-1, ap-southeast-2, eu-central-1, us-east-2, ap-south-1.
O provisionamento Lakebase usa compute de provisionamento que você escala manualmente. Para comparação de recursos com o novo dimensionamento automático do Lakebase, consulte a seção "Escolhendo entre versões".
Uma função Postgres para a identidade Databricks do proprietário da instância do banco de dados Lakebase é criada automaticamente.
Inicialmente, somente o proprietário da instância pode log in e acessar a instância por meio do Postgres. Para permitir que outras identidades Databricks log in acessem a instância do banco de dados, a identidade Databricks deve ter uma função Postgres correspondente.
Esta página descreve como adicionar e gerenciar funções adicionais baseadas em identidade da Databricks no PostgreSQL.
Criar funções do Postgres e conceder privilégios para identidades do Databricks
Crie funções do Postgres usando a interface do usuário do Databricks ou consultas do PostgreSQL.
As ações de gerenciamento de funções são regidas pelas permissões concedidas na instância do banco de dados. Certifique-se de que o senhor tenha o nível de acesso adequado antes de tentar gerenciar as funções.
- UI
- PostgreSQL
Os usuários com permissão CAN USE na instância do banco de dados podem view as funções existentes do Postgres associadas às identidades Databricks ou adicionar uma função para sua própria identidade na instância.
Os usuários com CAN MANAGE podem também criar funções para outras identidades da Databricks, inclusive com privilégios adicionais, e eliminar funções para qualquer identidade da Databricks.
O senhor pode atribuir permissões adicionais a quaisquer usuários, grupos ou entidades de serviço desejados na página de visão geral das instâncias do banco de dados .
-
Clique
Acesse os aplicativos no canto superior direito e selecione Lakebase Postgres .
-
Clique em provisionamento para abrir a página de instâncias de provisionamento .
-
Selecione sua instância de banco de dados.
-
Selecione a página Funções na barra lateral do aplicativo Lakebase.
-
Clique em Adicionar função no canto superior direito.
-
No menu suspenso Principal , selecione um usuário, grupo ou entidade de serviço à qual você deseja conceder acesso ao banco de dados. Você deve selecionar uma identidade do Databricks que ainda não tenha uma função do Postgres na instância.
-
(Opcional) Selecione as funções do sistema a serem concedidas:
- databricks_superuser : Concede acesso de leitura e gravação a todos os dados. Esta é uma função administrativa com amplos privilégios que herda de
pg_read_all_data,pg_write_all_dataepg_monitor. Consulte Funções e permissões pré-criadas.
- databricks_superuser : Concede acesso de leitura e gravação a todos os dados. Esta é uma função administrativa com amplos privilégios que herda de
-
(Opcional) Selecione os atributos do sistema para conceder funcionalidades específicas:
- 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 as políticas de segurança em nível de linha (RLS).
-
Clique em Adicionar .
Antes de criar novas funções do Postgres, verifique se você atende aos seguintes requisitos:
- Você deve ter as permissões
CREATEeCREATE ROLEno banco de dados. - O senhor deve se autenticar e acessar log in no Postgres como uma identidade Databricks (usuário, entidade de serviço ou grupo). As sessões autenticadas do Postgres nativo não podem criar funções do Databricks.
- Seus tokens de autenticação devem ser válidos 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 da Databricks. A extensão personalizada do PostgreSQL databricks_auth fornece a função databricks_create_role.
-
Crie a extensão
databricks_auth. Cada banco de dados Postgres deve ter sua própria extensão.SQLCREATE EXTENSION IF NOT EXISTS databricks_auth; -
Use a função
databricks_create_rolepara adicionar e criar novas funções do Postgres para identidades do Databricks. A função ainda não deve existir. Se existir uma função com o mesmo nome, elimine-a antes de criar a função baseada em identidade do Databricks.SQLSELECT databricks_create_role('identity_name', 'identity_type');Os parâmetros
identity_nameeidentity_typedependem do tipo de identidade do Databricks:-
Usuário da Databricks:
- identity_name: e-mail do usuário, por exemplo.
myuser@databricks.com - tipo_identidade:
USER
SQLSELECT databricks_create_role('myuser@databricks.com','USER'); - identity_name: e-mail do usuário, por exemplo.
-
Databricks entidade de serviço:
- identity_name: ID do aplicativo da entidade de serviço, por exemplo.
8c01cfb1-62c9-4a09-88a8-e195f4b01b08 - tipo_identidade:
SERVICE_PRINCIPAL
SQLSELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL'); - identity_name: ID do aplicativo da entidade de serviço, por exemplo.
-
Grupo Databricks:
- identity_name: Nome do grupo (diferencia maiúsculas de minúsculas):
My Group 123 - tipo_identidade:
GROUP
SQLSELECT databricks_create_role('My Group 123','GROUP'); - identity_name: Nome do grupo (diferencia maiúsculas de minúsculas):
-
-
Uma função criada usando
databricks_create_rolesó tem privilégios concedidos aPUBLICapós a criação. Para conceder ou revogar privilégios adicionais, use o comando padrão de gerenciamento de privilégios do PostgresGRANTeREVOKE.Dê permissão de leitura à função para acessar uma tabela.
SQLGRANT SELECT ON "my_schema"."my_table" TO <role-name>;Remova o acesso de gravação a uma tabela da função.
SQLREVOKE INSERT, UPDATE, DELETE ON TABLE "my_schema"."my_table" FROM <role-name>;Revogue todo o acesso da função a um banco de dados.
SQLREVOKE CONNECT ON DATABASE "example_database" FROM <role-name>;
Visualizar Databricks funções de identidade
- UI
- PostgreSQL
É possível ver quais usuários, grupos e entidades de serviço têm uma função Postgres correspondente na página de visão geral das instâncias de banco de dados .
- Clique
Acesse os aplicativos no canto superior direito e selecione Lakebase Postgres .
- Clique em provisionamento para abrir a página de instâncias de provisionamento .
- Selecione sua instância de banco de dados.
- Selecione a página Funções na barra lateral do aplicativo Lakebase.
Use as consultas PostgreSQL para listar todas as funções de identidade Databricks criadas por default e, a partir do uso da função databricks_create_role, use a função databricks_list_roles na extensão databricks_auth. Lista todos os usuários do Databricks, entidade de serviço e grupos adicionados para autenticação como funções do Postgres.
CREATE EXTENSION IF NOT EXISTS databricks_auth;
SELECT * from databricks_list_roles;
Eliminar uma função Postgres baseada em identidade da Databricks
- UI
- PostgreSQL
A eliminaçã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 eliminar a nova função que possui objetos reatribuídos.
- Clique
Acesse os aplicativos no canto superior direito e selecione Lakebase Postgres .
- Clique em provisionamento para abrir a página de instâncias de provisionamento .
- Selecione sua instância de banco de dados.
- Selecione a página Funções na barra lateral do aplicativo Lakebase.
- Para a função que deseja remover, clique
no lado direito da fileira.
- Clique em Soltar .
- (Opcional) Se a função possuir objetos, ative a opção "Reatribuir objetos pertencentes" para permitir a remoção da função. Esta opção reatribui objetos pertencentes a outra função antes de os descartar. 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.
- Clique em Confirmar .
Uma função do Postgres baseada em identidade da 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 eliminação de funções. Depois que uma função baseada em identidade Databricks é descartada, ela não pode ser usada para autenticação baseada em tokens e acesso ao Postgres.