Freigeben über


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 oder Spaltenmasken sein, die auf Kataloge, Schemas oder Tabellen angewendet werden. 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.

Syntax

CREATE [ OR REPLACE ] POLICY policy_name
ON { CATALOG catalog_name | SCHEMA schema_name | TABLE table_name }
[ COMMENT description ]
{ row_filter_body | column_mask_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 [, ...] ) ]

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.

  • 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

    For WHEN: a boolean expression that matches securables (for example, table-level tag conditions). For MATCH COLUMNS: a boolean expression that matches columns (for example, hasTag('tag_name')). Bedingungen werden von der Kontrollebene auf sicherungsfähigen Metadaten ausgewertet. Die einzigen benutzerorientierten Funktionen, die in Bedingungen unterstützt werden, sind hasTag() und hasTagValue(). 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 hasTag('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 hasTagValue('sensitivity', 'high')
    MATCH COLUMNS hasTag('geo_region') AS region
    USING COLUMNS (region);