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.
Important
Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Unterstützte Regionen finden Sie unter "Verfügbarkeit der Region". Wenn Sie ein Lakebase Provisioned-Benutzer sind, lesen Sie Lakebase Provisioned.
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 als
<current_owner>-Rolle (die Rolle, die derzeit die Tabelle besitzt) her, und erstellen Sie dann eine temporäre gemeinsame Besitzrolle:CREATE ROLE temp_table_owners NOLOGIN;Erteilen Sie Schemaberechtigungen für die temporäre Rolle:
GRANT USAGE, CREATE ON SCHEMA public TO temp_table_owners;Zuweisen der Mitgliedschaft in der temporären Rolle an den aktuellen Besitzer und die Zielgruppe.
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".Verbinden Sie sich als
<databricks_group_name>-Rolle: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 in der Rolle von
<current_owner>her, und erstellen Sie dann eine temporäre geteilte Besitzrolle:CREATE ROLE temp_table_owners NOLOGIN;Erteilen von Schemaberechtigungen für die temporäre Rolle:
GRANT USAGE, CREATE ON SCHEMA public TO temp_table_owners;Zuweisen der Mitgliedschaft in der temporären Rolle an den aktuellen Besitzer und die Zielgruppe:
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 die Verbindung als die Rolle
<databricks_group_name>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.
- Zuweisen des Besitzes nur. Vorhandene GRANT Berechtigungen oder Standardberechtigungen werden nicht geändert.