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

    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);