Transferir a propriedade de objetos do Postgres
Lakebase autoscale é a versão mais recente do Lakebase, com recursos como autoscale compute, escala-to-zero, branching e instant restore. Para regiões compatíveis, consulte Disponibilidade por região. Se você é usuário de provisionamento Lakebase , consulte ProvisionamentoLakebase.
No Lakebase, use uma função compartilhada temporária como uma etapa intermediária para transferir a propriedade de objetos do Postgres entre funções. Você não pode fazer isso diretamente com um comando ALTER TABLE ... OWNER TO padrão.
Esta página aborda a transferência de propriedade para uma função de grupo do Databricks. Para conceder acesso a objetos sem alterar a propriedade, consulte gerenciar permissões de banco de dados.
Pré-requisitos
- O grupo Databricks de destino existe no seu workspace. Para criar um grupo: No Lakehouse, acesse Configurações > Identidade e acesso > Grupos > Adicionar grupo .
- O proprietário atual do objeto é membro do grupo alvo. Para adicionar um membro: No Lakehouse, acesse Configurações > Identidade e acesso > Grupos > seu grupo > Adicionar membro .
- Existe uma função do Postgres para o grupo Databricks. Consulte Criar uma função OAuth para identidades do Databricks para adicionar uma função do Postgres ao grupo.
Transferir a propriedade de um único objeto
-
Conecte-se com a função
<current_owner>(a função que atualmente possui a tabela) e, em seguida, crie uma função de propriedade compartilhada temporária:SQLCREATE ROLE temp_table_owners NOLOGIN; -
Conceda permissões de esquema à função temporária:
SQLGRANT USAGE, CREATE ON SCHEMA public TO temp_table_owners; -
Conceder a adesão temporária ao proprietário atual e ao grupo-alvo:
SQLGRANT temp_table_owners TO "<current_owner>";
GRANT temp_table_owners TO "<databricks_group_name>"; -
Transferir a propriedade da tabela para a função temporária:
SQLALTER TABLE <target_table> OWNER TO temp_table_owners; -
No seu projeto Lakebase , clique em Conectar , selecione a função
<databricks_group_name>no menu suspenso Funções e clique em Copiar tokens OAuth . -
Conecte-se como a função
<databricks_group_name>:Bashexport PGPASSWORD='<oauth_token>'
psql -h <lakebase_hostname> -p 5432 \
-d <database_name> \
-U "<databricks_group_name>" \
--set=sslmode=require -
Transfira a tabela para a função de grupo do Databricks:
SQLALTER TABLE <target_table> OWNER TO "<databricks_group_name>"; -
Confirme a transferência:
Text\dtA coluna Proprietário para
<target_table>mostra<databricks_group_name>.
Transferir a propriedade de vários objetos
REASSIGN OWNED Transfere todos os objetos pertencentes a uma função, incluindo tabelas, visualizações, visualizações materializadas, sequências, funções, esquemas e tipos.
-
Conecte-se com a função
<current_owner>e, em seguida, crie uma função de propriedade compartilhada temporária:SQLCREATE ROLE temp_table_owners NOLOGIN; -
Conceda permissões de esquema à função temporária:
SQLGRANT USAGE, CREATE ON SCHEMA public TO temp_table_owners; -
Conceder a adesão temporária ao proprietário atual e ao grupo-alvo:
SQLGRANT temp_table_owners TO "<current_owner>";
GRANT temp_table_owners TO "<databricks_group_name>"; -
Reatribua todos os objetos pertencentes ao proprietário atual à função temporária:
SQLREASSIGN OWNED BY "<current_owner>" TO temp_table_owners; -
No seu projeto Lakebase , clique em Conectar , selecione a função
<databricks_group_name>no menu suspenso Funções e clique em Copiar tokens OAuth . -
Conecte-se como a função
<databricks_group_name>:Bashexport PGPASSWORD='<oauth_token>'
psql -h <lakebase_hostname> -p 5432 \
-d <database_name> \
-U "<databricks_group_name>" \
--set=sslmode=require -
Reatribua todos os objetos da função temporária ao grupo Databricks:
SQLREASSIGN OWNED BY temp_table_owners TO "<databricks_group_name>";
REASSIGN OWNED apresenta o seguinte comportamento:
- execução no contexto do banco de dados atual. execute-o em cada banco de dados onde você precisa transferir a propriedade.
- Apenas reatribui a propriedade. Não altera as permissões GRANT existentes nem os privilégios default .