Datenbankobjekte in Universal Search auffindbar machen¶
Universal Search hilft Ihnen, Datenbankobjekte im Konto zu finden. Standardmäßig können Sie nur Objekte auffinden, auf die Sie bereits Zugriff erhalten haben. Selbst wenn Sie Zugriff auf mehrere Konten innerhalb Ihrer Snowflake-Organisation haben, können Sie keine Objekte außerhalb des Kontos sehen, bei dem Sie angemeldet sind, da Zugriffsrechte nicht über Konten hinweg gelten.
Administratoren können es Benutzern ermöglichen, Objekte aufzufinden, auf die sie noch keinen Zugriff haben, einschließlich Objekte in anderen Konten innerhalb Ihrer Snowflake-Organisation, indem sie die Objektsichtbarkeit verwalten.
Bemerkung
Sie können -Objekte mit Kontaktinformationen verknüpfen, sodass ein Benutzer, der eine Suche durchführt und nicht die Berechtigung zum Zugriff auf ein Objekt hat, Request Access auswählen kann, um die Kontaktinformationen anzuzeigen.
OBJECT_VISIBILITY-Eigenschaft¶
Die Eigenschaft OBJECT_VISIBILITY steuert die Auffindbarkeit der Objekte im Konto, sodass Benutzende ohne explizite Zugriffsrechte Objekte finden und Zugriff anfordern können. Eine erweiterte Sichtbarkeit von Objekten im Konto kann die Zusammenarbeit vereinfachen und Zugriffsanforderungen optimieren.
OBJECT_VISIBILITY kann für ein Konto, eine Datenbank oder ein Schema festgelegt werden und folgt dem Vererbungsmodell von Snowflake: Einstellungen auf einer höheren Ebene (z. B. Konten) gelten automatisch für niedrigere Ebenen (z. B. Datenbanken), sofern sie nicht überschrieben werden.
Sie können OBJECT_VISIBILITY auf einen der folgenden Werte einstellen:
Eine YAML-Spezifikation, die die Sichtbarkeit in einem der folgenden Formate beschreibt:
$$ organization_targets: - all_accounts_including_external $$
Or
$$ organization_targets: - account: <account_name_1> - account: <account_name_2> - ... - organization_user_group: <org_user_group_1> - organization_user_group: <org_user_group_2> $$
In der obigen Syntax:
all_accounts_including_external: Legt fest, dass alle Benutzenden in allen Konten in der Organisation das Objekt sehen können. Dies schließt alle Konten innerhalb der Organisation ein, auch solche, auf die externe Parteien möglicherweise Zugriff erhalten haben, wie z. B. -Lesekonten.account: account_name: Gibt an, dass alle Benutzenden des angegebenen Kontos das Objekt sehen können. Sie können mehrere Konten angeben. Beachten Sie, dassaccountder Name des Kontos ist, nicht der Konto-Locator. Sie dürfen nur den Kontonamen angeben, ausschließlich den der Organisation „name.09-22“organization_user_group: org_user_group: Gibt an, dass die angegebene Benutzergruppe der Organisation das Objekt in allen Konten der Organisation sehen kann, in der die Organisations-Benutzergruppe importiert wurde.
PRIVILEGED: Legt fest, dass nur Rollen innerhalb des aktuellen Kontos, die über eine explizite Berechtigung für das Objekt verfügen, das Objekt sehen können. Dies ist das Standardverhalten in Snowflake.
Sie können ein Objekt jederzeit auf PRIVILEGED-Sichtbarkeit zurücksetzen.
Spezifische Syntax, Nutzungshinweise und Beispiele finden Sie unter den folgenden Themen:
CREATE-Befehle¶
ALTER-Befehle¶
Anforderungen an die Zugriffssteuerung¶
Rollen, die diese Eigenschaft verwenden, müssen mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
|---|---|---|
MANAGE-VISIBILITY |
Konto |
Standardmäßig verfügt die Rolle SECURITYADMIN über diese Berechtigung. Die Berechtigung kann je nach Bedarf weiteren Rollen erteilt werden. |
OWNERSHIP |
Datenbank oder Schema |
Erforderlich, um eine ALTER DATABASE- oder ALTER SCHEMA-Anweisung zum Festlegen der Sichtbarkeit von Objekten auszuführen. OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Beispiele¶
Eine Datenbank allgemein sichtbar machen¶
Die folgende Anweisung erstellt die product_analytics-Datenbank, die für alle Benutzer des aktuellen Kontos (ACME_ENGINEERING) sichtbar ist:
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- account: acme_engineering
$$;
Die folgende Anweisung macht die Datenbank für alle Benutzer in zwei zusätzlichen Konten innerhalb der Organisation sichtbar (ACME_MARKETING und ACME_SALES):
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- account: acme_engineering
- account: acme_marketing
- account: acme_sales
$$;
Die folgende Anweisung macht die Datenbank für alle Benutzer in allen Konten innerhalb der ACME-Organisation sichtbar:
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- all_accounts_including_external
$$;
Sichtbarkeit einer Datenbank für bestimmte Benutzergruppen einer Organisation¶
Die folgende Anweisung macht die Datenbank für bestimmte Benutzergruppen der Organisation in allen Konten innerhalb der ACME-Organisation sichtbar, in der die Organisations-Benutzergruppe importiert wurde:
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- organization_user_group: engineering
- organization_user_group: marketing
- organization_user_group: sales
$$;
Einschränkungen¶
Objekte, die auffindbar und nicht zugänglich sind, werden nur in der allgemeinen Suche (Universal Search) angezeigt. Sie sind im nicht im Datenbankobjekt-Explorer oder in SQL-Befehlen sichtbar, die Metadaten anzeigen (SHOW-Befehle usw.).
Für ein Schema können Sie den Wert der Eigenschaft OBJECT_VISIBILITY auf PRIVILEGED festlegen, um alle umfassenderen Sichtbarkeitseinstellungen zu überschreiben, die möglicherweise von der Konto- oder Datenbankebene geerbt werden, sodass das Schema nur für den Eigentümer zugänglich ist.
Die Eigenschaft OBJECT_VISIBILITY kann nicht unterhalb der Schemaebene festgelegt oder überschrieben werden. Auf Schemaebene können Benutzer entweder alle Objekte oder keine Objekte sehen.
Es kann einige Stunden dauern, bis in der Suche die Änderungen an der Sichtbarkeit von Objekten widergespiegelt werden.