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.
Este artículo documenta la sintaxis para definir las reglas de seguridad a nivel de fila (RLS) en la seguridad de OneLake. Para aplicar una regla RLS a una tabla, consulte Crear y gestionar roles de seguridad en OneLake.
Las reglas de RLS usan la sintaxis SQL para especificar las filas que un usuario puede ver. La sintaxis adopta la forma de una sentencia SQL SELECT con las reglas RLS definidas en la WHERE cláusula. Las reglas RLS solo soportan el subconjunto de SQL definido en este artículo. Las consultas con sintaxis RLS inválida, o sintaxis RLS que no coincide con la tabla subyacente, resultan en que no se muestren filas a los usuarios o en errores de consulta en el endpoint de analítica SQL.
Mientras escribes expresiones RLS, ten en cuenta las siguientes mejores prácticas:
- Evita expresiones de RLS vagas o excesivamente complejas.
- Las expresiones fuertemente tipadas con búsquedas enteras o de cadena que usan "=" son las más seguras y fáciles de entender.
- Utiliza columnas enteras para ordenar y para operaciones de mayor o menor que.
- Evita las equivalencias de cadenas si no conoces el formato de los datos de entrada, especialmente para los caracteres Unicode o la sensibilidad al acento.
La seguridad a nivel de fila evalúa los datos de cadenas como insensibles a mayúsculas y minúsculas utilizando la siguiente clasificación para ordenar y comparar: Latin1_General_100_CI_AS_KS_WS_SC_UTF8.
Syntax
El número máximo de caracteres de una regla de seguridad de nivel de fila es 1 000.
Todas las reglas de seguridad a nivel de fila tienen la siguiente forma:
SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}
Por ejemplo:
SELECT * FROM Sales WHERE Amount > 50000 AND State='CA'
| Marcador de posición | Description |
|---|---|
| {schema_name} | El nombre del esquema que contiene {table_name}. Si el elemento soporta esquemas, debes incluir {schema_name}. |
| {table_name} | El nombre de la tabla a la que se aplica el predicado RLS. Este valor debe coincidir exactamente con el nombre de la tabla, o el RLS no muestra filas. Usa llaves [] cuadrados para evitar nombres de tablas con caracteres especiales. Por ejemplo: SELECT * FROM [dbo].[Secret.Table]. |
| {nivel_de_columna_booleano} | Una instrucción booleana que contiene los siguientes componentes: * Nombre de columna: El nombre de una columna en {table_name}, tal como aparece en el esquema de registro Delta. Puedes formatear los nombres de las columnas como {column_name} o {table_name}. {column_name}. * Operador: Uno de los operadores soportados que evalúa el nombre y valor de la columna a un valor booleano. * Valor: Un valor estático o conjunto de valores para evaluar. Puede tener una o varias instrucciones booleanas separadas por AND u OR. |
Operadores compatibles
Las reglas de seguridad a nivel de fila soportan los siguientes operadores y palabras clave:
| Operator | Description |
|---|---|
= (igual que) |
Se evalúa como true si los dos valores son el mismo tipo de datos y hay coincidencias exactas. |
<> (no es igual a) |
Se evalúa como true si los dos valores no son el mismo tipo de datos y no hay coincidencias exactas. |
> (mayor que) |
Se evalúa como verdadero si el valor de columna es mayor que el valor de referencia. Para los valores de cadena, este operador usa la comparación bit a bit para determinar si una cadena es mayor que la otra. |
>= (mayor o igual que) |
Se evalúa como verdadero si el valor de columna es mayor o igual que el valor evaluado. Para los valores de cadena, este operador usa la comparación bit a bit para determinar si una cadena es mayor o igual que la otra. |
< (menor que) |
Se evalúa como verdadero si el valor de la columna es menor que el valor de evaluación. Para los valores de cadena, este operador usa la comparación bit a bit para determinar si una cadena es menor que la otra. |
<= (menor o igual que) |
Se evalúa como verdadero si el valor de la columna es menor o igual que el valor evaluado. Para los valores de cadena, este operador usa la comparación bit a bit para determinar si una cadena es menor o igual que la otra. |
IN |
Se evalúa como verdadero si alguno de los valores de evaluación es del mismo tipo de datos y coincide con precisión con el valor de columna. |
NOT |
Se evalúa como true si alguno de los valores de evaluación no tiene el mismo tipo de datos ni coincide exactamente con el valor de la columna. |
AND |
Combina la instrucción anterior y la siguiente mediante una operación booleana AND. Ambos enunciados deben ser verdaderos para que el predicado completo sea verdadero. |
OR |
Combina la instrucción anterior y la siguiente usando una operación BOOLEANA de OR. Una de las afirmaciones debe ser verdadera para que todo el predicado sea verdadero. |
TRUE |
La expresión booleana para true. |
FALSE |
La expresión booleana para false. |
BLANK |
El tipo de dato en blanco, que puedes usar con el operador IS. Por ejemplo: row IS BLANK. |
NULL |
El tipo de dato nulo, que puedes usar con el operador IS. Por ejemplo: row IS NULL. |