Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime 16.4 y versiones posteriores
solo Unity Catalog
Crea una directiva con nombre en un elemento protegible. Las políticas pueden ser filtros de fila, máscaras de columna o políticas ABACGRANT. Los filtros de fila y las máscaras de columna se aplican a catálogos, esquemas o tablas, y están disponibles en Databricks Runtime 16.4 y superiores. Las políticas ABAC GRANT se aplican a catálogos o esquemas, y conceden privilegios dinámicamente sobre los valores que apuntan. También puedes añadir una política a la metastore para que se aplique a todos los catálogos de la metastore. Consulta las políticas ABAC a nivel Metastore (Beta). El nombre de la directiva tiene como ámbito el elemento protegible en el que se define la directiva.
Para ejecutar esta instrucción, debe tener el MANAGE privilegio en el elemento protegible de destino o ser su propietario. Para crear una política ON METASTORE (Beta), debes ser administrador de metastore.
Crear, modificar o eliminar una política DENY o política ABAC GRANT (Beta) con SQL requiere Databricks Runtime 18 LTS o superior. En los almacenes SQL, el soporte depende del canal de lanzamiento del almacén. Consulta los requisitos de cómputo para GRANT políticas y DENY políticas.
Crear, modificar o eliminar una política a nivel metastore (Beta) con SQL requiere Databricks Runtime 19 o superior. Consulte Requisitos de computación.
Nota
Databricks Runtime 18 es más reciente que Databricks Runtime 18.0, 18.1 y 18.2. Las características que anteriormente se hubieran enviado como una versión numerada posterior ahora se envían como actualizaciones con fecha de Databricks Runtime 18 en su lugar. Para obtener más información, consulte Información sobre las notas de la versión unificadas.
Sintaxis
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 ]
Las políticas de filtro de fila y máscara de columna pueden definirse en una metastore (Beta), catálogo, esquema o tabla.
GRANT Las políticas pueden definirse en un metastore, catálogo o esquema.
ON METASTORE No toma nombre y apunta a la metastore en la que operas actualmente.
Parámetros
-
Nombre de la directiva. El nombre tiene como ámbito el elemento protegible en el que se define la directiva. Si ya existe una directiva con el mismo nombre y
OR REPLACEno se especifica, Azure Databricks genera POLICY_ALREADY_EXISTS. -
Nombre del catálogo en el que se define la directiva. Si no se admite el tipo protegible para las directivas, Azure Databricks genera POLICY_ON_SECURABLE_TYPE_NOT_SUPPORTED.
-
Nombre del esquema en el que se define la directiva.
-
Nombre de la tabla en la que se define la directiva.
descripción
Comentario de cadena opcional para la directiva.
-
Nombre de la UDF usada para el filtro de fila o la máscara de columna.
privilege
En
grant_policy_body, un privilegio para conceder a cada garante que coincida con la póliza. Los privilegios válidos dependen degrant_target_type. Consulta Tipos y privilegios de seguridad soportados.grant_target_type
En
grant_policy_body, el tipo de seguro al que se aplican los privilegios concedidos. Utiliza la forma plural:MODELS,MODEL SERVICES,MODEL PROVIDER SERVICES,MCP SERVICES, oAGENT SERVICES. También se acepta la forma subrayada, comoMODEL_SERVICES, No se aceptan formas singulares.principal
Un nombre de usuario, grupo o entidad de seguridad de servicio. Se pueden enumerar varias entidades de seguridad después
TOde . Las entidades de seguridad enumeradas despuésEXCEPTse excluyen de la directiva.-
WHENes una expresión booleana que determina si la política se aplica, basándose en las etiquetas del seguro, los atributos de identidad del usuario que consulta y/o el contexto de la solicitud.MATCH COLUMNSes una expresión booleana que coincide con las columnas según sus etiquetas (por ejemplo,has_tag('pii')).Las condiciones se evalúan mediante el plano de control. Las siguientes funciones están soportadas en condiciones:
-
Funciones de etiqueta (
has_tag()yhas_tag_value()): soportadas tantoWHENen comoMATCH COLUMNSen . Cuando se usan enWHEN, comprueban etiquetas establecidas directamente en la tabla o heredadas de un catálogo o esquema padre. Cuando se usa enMATCH COLUMNS, comprueban las etiquetas establecidas directamente en la columna únicamente. Las formas camelCase anteriores (hasTag,hasTagValue) siguen funcionando con compatibilidad con versiones anteriores. -
Funciones de atributos identidad (
has_identity_attribute_value()yhas_identity_attribute_tag_match()): soportadas en laWHENcláusula de las políticas de columna de máscara, donde evalúan los atributos de identidad del usuario que ejecuta la consulta. No están respaldados enGRANTniDENYen las políticas ni enMATCH COLUMNS. Consulta Enmascarar una columna basada en los atributos del usuario que hace la consulta. -
Funciones de atributos de contexto (
has_context_attribute()yhas_context_attribute_value()): soportadas en laWHENcláusula de filtros de fila y políticas de máscara de columna, donde evalúan el contexto de la solicitud, como la aplicación que llama. No están soportados enMATCH COLUMNS. Véase Restringir el acceso para agentes externos que actúan en nombre de un usuario.
Si la condición no es válida, Azure Databricks genera UC_INVALID_POLICY_CONDITION.
-
Funciones de etiqueta (
alias
En
MATCH COLUMNS, un identificador opcional para la columna coincidente. Se puede hacer referencia al alias enUSING COLUMNS(filtro de fila) o enON COLUMNyUSING COLUMNS(máscara de columna).function_arg
En
USING COLUMNS, cada argumento es una expresión constante o un alias deMATCH COLUMNS. Los argumentos se pasan a la función de directiva en orden. Si las opciones no coinciden con el tipo de directiva, Azure Databricks genera UC_POLICY_TYPE_OPTIONS_MISMATCH.
Ejemplos
En el ejemplo siguiente se crea una directiva de máscara de columna:
> 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);
En el ejemplo siguiente se crea una directiva de filtro de fila:
> 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);
El siguiente ejemplo crea una política ABAC GRANT que concede EXECUTE a todos los servicios modelo creados por Anthropic:
> 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');