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.
Gilt für:
Databricks SQL
Databricks Runtime 16.4 und höher
nur Unity Catalog
Erstellt eine benannte Richtlinie für eine sicherungsfähige Richtlinie. Richtlinien können Zeilenfilter, Spaltenmasken oder ABAC-Richtlinien GRANTsein. Zeilenfilter und Spaltenmasken werden auf Kataloge, Schemata oder Tabellen angewendet und sind auf Databricks Runtime 16.4 und höher verfügbar. ABAC-Richtlinien GRANT werden auf Kataloge oder Schemata angewendet und gewähren dynamisch Rechte auf die Securables, die sie anvisieren. Du kannst auch eine Richtlinie an den Metastore anhängen, sodass sie auf jeden Katalog im Metastore angewendet wird. Siehe ABAC-Richtlinien auf Metastore-Niveau (Beta). Der Richtlinienname ist auf die sicherungsfähige Richtlinie festgelegt.
Um diese Anweisung auszuführen, müssen Sie über die MANAGE Berechtigung für das Ziel verfügen, das sicherungsfähig ist oder der Besitzer sein muss. Um eine Richtlinie ON METASTORE (Beta) zu erstellen, musst du Metastore-Admin sein.
Das Erstellen, Ändern oder Entfernen einer ABAC-Richtlinie GRANT oder DENY -Richtlinie (Beta) mit SQL erfordert Databricks Runtime 18 LTS oder höher. Bei SQL-Warehouses hängt die Unterstützung vom Release-Kanal des Lagers ab. Siehe die Rechenanforderungen für GRANT Richtlinien und DENY Richtlinien.
Das Erstellen, Ändern oder Entfernen einer Metastore-Level-Policy (Beta) mit SQL erfordert Databricks Runtime 19 oder höher. Siehe Computeanforderungen.
Note
Databricks Runtime 18 ist neuer als Databricks Runtime 18.0, 18.1 und 18.2. Features, die zuvor als spätere nummerierte Version ausgeliefert wurden, werden stattdessen als veraltete Updates für Databricks Runtime 18 ausgeliefert. Ausführliche Informationen finden Sie unter "Informationen zu einheitlichen Versionshinweisen".
Syntax
CREATE [ OR REPLACE ] POLICY policy_name
ON { METASTORE | CATALOG catalog_name | SCHEMA schema_name | TABLE table_name }
[ COMMENT description ]
{ row_filter_body | column_mask_body | grant_policy_body }
row_filter_body
ROW FILTER function_name
TO principal [, ...]
[ EXCEPT principal [, ...] ]
FOR TABLES
[ WHEN condition ]
[ MATCH COLUMNS condition [ [ AS ] alias ] [, ...] ]
[ USING COLUMNS ( function_arg [, ...] ) ]
column_mask_body
COLUMN MASK function_name
TO principal [, ...]
[ EXCEPT principal [, ...] ]
FOR TABLES
[ WHEN condition ]
[ MATCH COLUMNS condition [ [ AS ] alias ] [, ...] ]
ON COLUMN alias
[ USING COLUMNS ( function_arg [, ...] ) ]
grant_policy_body
TO principal [, ...]
[ EXCEPT principal [, ...] ]
GRANT privilege [, ...]
FOR grant_target_type
[ WHEN condition ]
Zeilenfilter- und Spaltenmasken-Richtlinien können auf einem Metastore (Beta), Katalog, Schema oder Tabelle definiert werden.
GRANT Richtlinien können in einem Metastore, Katalog oder Schema definiert werden.
ON METASTORE Nimmt keinen Namen an und zielt auf den Metastore ab, in dem du gerade operierst.
Parameter
-
Name der Richtlinie. Der Name ist auf die sicherungsfähige Richtlinie festgelegt. Wenn eine Richtlinie mit demselben Namen bereits vorhanden ist und
OR REPLACEnicht angegeben ist, löst Azure Databricks POLICY_ALREADY_EXISTS aus. -
Der Name des Katalogs, in dem die Richtlinie definiert ist. Wenn der sicherungsfähige Typ für Richtlinien nicht unterstützt wird, löst Azure Databricks POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED aus.
-
Der Name des Schemas, für das die Richtlinie definiert ist.
-
Der Name der Tabelle, in der die Richtlinie definiert ist.
Beschreibung
Ein optionaler Zeichenfolgenkommentar für die Richtlinie.
-
Der Name der UDF, die für den Zeilenfilter oder das Spaltenformat verwendet wird.
Berechtigung
In
grant_policy_body, ein Privileg, auf jedes Sicherungsobjekt, das der Police entspricht, zu gewähren. Die gültigen Privilegien hängen vongrant_target_typeab . Siehe Unterstützte securable Typen und Privilegien.grant_target_type
In
grant_policy_bodygilt die Art des versicherten Schutzes, auf den die gewährten Privilegien gelten. Verwenden Sie die Pluralform:MODELS, ,MODEL SERVICES,MODEL PROVIDER SERVICESMCP SERVICES, , oderAGENT SERVICES. Die unterstrichene Form, wieMODEL_SERVICESbeispielsweise , wird ebenfalls akzeptiert. Singularformen werden nicht akzeptiert.principal
Ein Benutzer, eine Gruppe oder ein Dienstprinzipalname. Mehrere Prinzipale können danach
TOaufgelistet werden. Die folgendenEXCEPTPrinzipale werden von der Richtlinie ausgeschlossen.-
WHENist ein boolescher Ausdruck, der bestimmt, ob die Richtlinie anwandt, basierend auf den Tags des Securables, den Identitätsattributen des abfragenden Benutzers und/oder dem Kontext der Anfrage.MATCH COLUMNSist ein boolescher Ausdruck, der Spalten basierend auf ihren Tags abgleicht (zum Beispielhas_tag('pii')).Die Bedingungen werden von der Kontrollebene bewertet. Folgende Funktionen werden unter Bedingungen unterstützt:
-
Tag-Funktionen (
has_tag()undhas_tag_value()): werden sowohl in alsMATCH COLUMNSauchWHENunterstützt. Wenn sie inWHENverwendet werden, prüfen sie Tags, die direkt in der Tabelle gesetzt oder von einem Elternkatalog oder Schema übernommen wurden. Bei Verwendung inMATCH COLUMNS, überprüfen sie Tags, die nur für die Spalte festgelegt sind. Die älteren CamelCase-Formulare (hasTag,hasTagValue) funktionieren weiterhin aus Gründen der Abwärtskompatibilität. -
Die Funktionen der Identitätsattribute (
has_identity_attribute_value()undhas_identity_attribute_tag_match()): werden in derWHENKlausel der Spaltenmaskenrichtlinien unterstützt, wobei sie die Identitätsattribute des Benutzers bewerten, der die Abfrage ausführt. Sie werden weder inGRANTPolitiken nochDENYinMATCH COLUMNSPolitik unterstützt. Siehe Mask, eine Spalte basierend auf den Attributen des anfragenden Benutzers. -
Kontextattributfunktionen (
has_context_attribute()undhas_context_attribute_value()): werden in derWHENKlausel der Zeilenfilter- und Spaltenmaskenrichtlinien unterstützt, wobei sie den Kontext der Anfrage bewerten, wie zum Beispiel die aufrufende Anwendung. Sie werden inMATCH COLUMNS. nicht unterstützt. Siehe Zugriff einschränken für externe Agenten, die im Auftrag eines Benutzers handeln.
Wenn die Bedingung ungültig ist, löst Azure Databricks UC_INVALID_POLICY_CONDITION aus.
-
Tag-Funktionen (
alias
In
MATCH COLUMNS, ein optionaler Bezeichner für die übereinstimmene Spalte. Auf den Alias kann inUSING COLUMNS(Zeilenfilter) oder inON COLUMNundUSING COLUMNS(Spaltenformat) verwiesen werden.function_arg
In
USING COLUMNS, jedes Argument ist entweder ein konstanter Ausdruck oder ein Alias vonMATCH COLUMNS. Die Argumente werden in der Reihenfolge an die Richtlinienfunktion übergeben. Wenn die Optionen nicht mit dem Richtlinientyp übereinstimmen, löst Azure Databricks UC_POLICY_TYPE_OPTIONS_MISMATCH aus.
Beispiele
Im folgenden Beispiel wird eine Spaltenformatrichtlinie erstellt:
> CREATE FUNCTION ssn_to_last_nr (ssn STRING, nr INT) RETURNS STRING
RETURN right(ssn, nr);
> CREATE POLICY ssn_mask
ON CATALOG employees
COLUMN MASK ssn_to_last_nr
TO 'All Users' EXCEPT 'HR admins'
FOR TABLES
MATCH COLUMNS has_tag('ssn') AS ssn
ON COLUMN ssn
USING COLUMNS (4);
Im folgenden Beispiel wird eine Zeilenfilterrichtlinie erstellt:
> CREATE FUNCTION non_eu_region (geo_region STRING) RETURNS BOOLEAN
RETURN geo_region <> 'eu';
> CREATE POLICY hide_eu_customers
ON SCHEMA prod.customers
COMMENT 'Hide European customers from sensitive tables'
ROW FILTER non_eu_region
TO analysts
FOR TABLES
WHEN has_tag_value('sensitivity', 'high')
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);
Das folgende Beispiel erstellt eine ABAC-RichtlinieGRANT, die jedem von Anthropic erstellten Modelldienst gewährtEXECUTE:
> CREATE POLICY grant_anthropic_model_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on Anthropic model services'
TO data_scientists
EXCEPT contractors
GRANT EXECUTE FOR MODEL SERVICES
WHEN has_tag_value('ai.model_creator', 'anthropic');