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.
A visualização de provisionamento do Lakebase usa compute de provisionamento que você escala manualmente. Para a nova versão do Lakebase, que oferece suporte compute com dimensionamento automático, ramificação, restauração instantânea e outros recursos avançados, consulte Lakebase Postgres (prévia com dimensionamento automático). Consulte a seção "Como escolher entre as versões" para entender qual versão é a mais adequada para você.
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 em Computação na barra lateral do workspace.
-
Clique em Instâncias de banco de dados.
-
Clique na guia Permissões .
-
Clique em Add PostgreSQL role (Adicionar função PostgreSQL ) no canto superior direito.
-
Para a identidade do espaço de trabalho , insira um usuário, grupo ou entidade de serviço e selecione a identidade Databricks. O senhor deve selecionar uma identidade Databricks que ainda não tenha uma função Postgres na instância.
-
Selecione uma associação à função . Se você tiver a permissão
CAN MANAGEna instância do banco de dados, poderá adicionar associação à funçãodatabricks_superusere ativar alguns atributos da função. -
Selecione os atributos do PostgreSQL a serem concedidos à nova função.
CREATEDB: concede permissão para criar novos bancos de dadosCREATEROLE: concede permissão para criar novas funçõesBYPASS RLS: concede permissão para ignorar toda a segurança em nível de linha na instância
-
Clique em Confirmar .
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 em Computação na barra lateral do workspace.
- Clique em Instâncias de banco de dados.
- Clique na guia Permissões .
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 em Computação na barra lateral do workspace.
- Clique em Instâncias de banco de dados.
- Clique na guia Permissões .
- Para a identidade da função que você deseja eliminar, no lado direito, clique em.
- Clique em Descartar função .
- Se você precisar abandonar uma função que possui objetos, ative Reatribuir objetos de propriedade . Isso reatribuirá todos os objetos de propriedade reatribuíveis (bancos de dados, esquemas e tabelas) à outra função e, em seguida, eliminará todos os objetos de propriedade não 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.