RICHTLINIE ERSTELLEN

Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime 16.4 und höher mit Häkchen markiert ja 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

  • policy_name

    Name der Richtlinie. Der Name ist auf die sicherungsfähige Richtlinie festgelegt. Wenn eine Richtlinie mit demselben Namen bereits vorhanden ist und OR REPLACE nicht angegeben ist, löst Azure Databricks POLICY_ALREADY_EXISTS aus.

  • catalog_name

    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.

  • schema_name

    Der Name des Schemas, für das die Richtlinie definiert ist.

  • table_name

    Der Name der Tabelle, in der die Richtlinie definiert ist.

  • Beschreibung

    Ein optionaler Zeichenfolgenkommentar für die Richtlinie.

  • function_name

    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 von grant_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, , oder AGENT SERVICES. Die unterstrichene Form, wie MODEL_SERVICESbeispielsweise , wird ebenfalls akzeptiert. Singularformen werden nicht akzeptiert.

  • principal

    Ein Benutzer, eine Gruppe oder ein Dienstprinzipalname. Mehrere Prinzipale können danach TOaufgelistet werden. Die folgenden EXCEPT Prinzipale werden von der Richtlinie ausgeschlossen.

  • Zustand

    WHEN ist 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 COLUMNS ist ein boolescher Ausdruck, der Spalten basierend auf ihren Tags abgleicht (zum Beispiel has_tag('pii')).

    Die Bedingungen werden von der Kontrollebene bewertet. Folgende Funktionen werden unter Bedingungen unterstützt:

    • Tag-Funktionen (has_tag() und has_tag_value()): werden sowohl in als MATCH COLUMNSauch WHEN unterstützt. Wenn sie in WHENverwendet werden, prüfen sie Tags, die direkt in der Tabelle gesetzt oder von einem Elternkatalog oder Schema übernommen wurden. Bei Verwendung in MATCH 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() und has_identity_attribute_tag_match()): werden in der WHEN Klausel der Spaltenmaskenrichtlinien unterstützt, wobei sie die Identitätsattribute des Benutzers bewerten, der die Abfrage ausführt. Sie werden weder in GRANT Politiken noch DENY in MATCH COLUMNSPolitik unterstützt. Siehe Mask, eine Spalte basierend auf den Attributen des anfragenden Benutzers.
    • Kontextattributfunktionen (has_context_attribute() und has_context_attribute_value()): werden in der WHEN Klausel der Zeilenfilter- und Spaltenmaskenrichtlinien unterstützt, wobei sie den Kontext der Anfrage bewerten, wie zum Beispiel die aufrufende Anwendung. Sie werden in MATCH 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.

  • alias

    In MATCH COLUMNS, ein optionaler Bezeichner für die übereinstimmene Spalte. Auf den Alias kann in USING COLUMNS (Zeilenfilter) oder in ON COLUMN und USING COLUMNS (Spaltenformat) verwiesen werden.

  • function_arg

    In USING COLUMNS, jedes Argument ist entweder ein konstanter Ausdruck oder ein Alias von MATCH 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');