Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie in Lakebase eine temporäre gemeinsame Rolle als Zwischenschritt, um den Besitz von Postgres-Objekten zwischen Rollen zu übertragen. Sie können dies nicht direkt mit einem Standardbefehl ALTER TABLE ... OWNER TO ausführen.
Note
Auf dieser Seite wird die Übertragung des Besitzes in eine Azure Databricks Gruppenrolle behandelt. Informationen zum Gewähren des Zugriffs auf Objekte ohne Änderung des Besitzes finden Sie unter Verwalten von Datenbankberechtigungen.
Voraussetzungen
- Die Ziel-Azure-Databricks-Gruppe existiert in Ihrem Arbeitsbereich. Um eine Gruppe zu erstellen: Gehen Sie in Lakehouse zu Einstellungen>Identität und Zugriff>Gruppen>Gruppe hinzufügen.
- Der aktuelle Objektbesitzer ist Mitglied der Zielgruppe. Um ein Mitglied hinzuzufügen: Gehen Sie in Lakehouse zu Einstellungen>Identität und Zugriff>Gruppen> Ihre Gruppe >Mitglied hinzufügen.
- Für die Azure Databricks Gruppe existiert eine Postgres-Rolle. Siehe Erstellen Sie eine OAuth-Rolle für Azure Databricks-Identitäten, um eine Postgres-Rolle für die Gruppe hinzuzufügen.
Übertragen des Besitzes eines einzelnen Objekts
Stellen Sie eine Verbindung über die
<current_owner>-Rolle her (die Rolle, die derzeit die Tabelle besitzt) und erstellen Sie dann eine temporäre gemeinsame Besitzrolle:CREATE ROLE temp_table_owners NOLOGIN;Weisen Sie Schemaberechtigungen für die temporäre Rolle zu:
GRANT USAGE, CREATE ON SCHEMA public TO temp_table_owners;Weisen Sie die Mitgliedschaft in der temporären Rolle dem aktuellen Besitzer und der Zielgruppe zu:
GRANT temp_table_owners TO "<current_owner>"; GRANT temp_table_owners TO "<databricks_group_name>";Übertragen Sie den Besitz der Tabelle auf die temporäre Rolle.
ALTER TABLE <target_table> OWNER TO temp_table_owners;Klicken Sie in Ihrem Lakebase-Projekt auf "Verbinden", wählen Sie die
<databricks_group_name>Rolle in der Dropdownliste "Rollen " aus, und klicken Sie auf "OAuth-Token kopieren".Stellen Sie eine Verbindung über die
<databricks_group_name>-Rolle her:export PGPASSWORD='<oauth_token>' psql -h <lakebase_hostname> -p 5432 \ -d <database_name> \ -U "<databricks_group_name>" \ --set=sslmode=requireÜbertragen Sie die Tabelle in die Azure Databricks Gruppenrolle:
ALTER TABLE <target_table> OWNER TO "<databricks_group_name>";Überprüfen Sie die Übertragung:
\dtDie Spalte "Besitzer" für
<target_table>zeigt<databricks_group_name>.
Übertragen des Besitzes mehrerer Objekte
REASSIGN OWNED überträgt alle Objekte, die einer Rolle gehören, einschließlich Tabellen, Ansichten, materialisierte Ansichten, Sequenzen, Funktionen, Schemas und Typen.
Stellen Sie eine Verbindung über die
<current_owner>-Rolle her und erstellen Sie dann eine temporäre gemeinsame Besitzrolle:CREATE ROLE temp_table_owners NOLOGIN;Weisen Sie Schemaberechtigungen für die temporäre Rolle zu:
GRANT USAGE, CREATE ON SCHEMA public TO temp_table_owners;Weisen Sie die Mitgliedschaft in der temporären Rolle dem aktuellen Besitzer und der Zielgruppe zu:
GRANT temp_table_owners TO "<current_owner>"; GRANT temp_table_owners TO "<databricks_group_name>";Weisen Sie alle Objekte, die dem aktuellen Besitzer gehören, der temporären Rolle zu:
REASSIGN OWNED BY "<current_owner>" TO temp_table_owners;Klicken Sie in Ihrem Lakebase-Projekt auf "Verbinden", wählen Sie die
<databricks_group_name>Rolle in der Dropdownliste "Rollen " aus, und klicken Sie auf "OAuth-Token kopieren".Stellen Sie eine Verbindung über die
<databricks_group_name>-Rolle her:export PGPASSWORD='<oauth_token>' psql -h <lakebase_hostname> -p 5432 \ -d <database_name> \ -U "<databricks_group_name>" \ --set=sslmode=requireWeisen Sie alle Objekte aus der temporären Rolle der Azure Databricks-Gruppe zu.
REASSIGN OWNED BY temp_table_owners TO "<databricks_group_name>";
Note
REASSIGN OWNED hat das folgende Verhalten:
- Wird im aktuellen Datenbankkontext ausgeführt. Führen Sie sie in jeder Datenbank aus, in der Sie den Besitz übertragen müssen.
- Weist nur den Besitz neu zu. Vorhandene GRANT Berechtigungen oder Standardberechtigungen werden nicht geändert.