Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo documenta a sintaxe para definir regras de segurança ao nível de linha (RLS) na segurança OneLake. Para aplicar uma regra RLS a uma tabela, veja Criar e gerir funções de segurança OneLake.
As regras RLS usam sintaxe SQL para especificar as linhas que um usuário pode ver. A sintaxe assume a forma de uma instrução SQL SELECT com as regras RLS definidas na WHERE cláusula. As regras RLS suportam apenas o subconjunto de SQL definido neste artigo. Consultas com sintaxe RLS inválida, ou sintaxe RLS que não corresponde à tabela subjacente, resultam em que não sejam mostradas linhas aos utilizadores, ou erros de consulta no endpoint de análise SQL.
Ao escrever expressões RLS, tenha em mente as seguintes boas práticas:
- Evite expressões RLS vagas ou demasiado complexas.
- Expressões fortemente tipadas com consultas inteiras ou de strings que usam "=" são as mais seguras e fáceis de entender.
- Use colunas inteiras para ordenação e operações de maior ou menor que ele.
- Evite equivalências de strings se não souber o formato dos dados de entrada, especialmente para caracteres Unicode ou sensibilidade ao acento.
A segurança ao nível da linha avalia os dados das cadeias como insensíveis a maiúsculas minúsculas, utilizando a seguinte colação para ordenação e comparações: Latin1_General_100_CI_AS_KS_WS_SC_UTF8.
Sintaxe
O número máximo de caracteres em uma regra de segurança em nível de linha é 1000.
Todas as regras de segurança em nível de linha assumem a seguinte forma:
SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}
Por exemplo:
SELECT * FROM Sales WHERE Amount > 50000 AND State='CA'
| Marcador de Posição | Description |
|---|---|
| {schema_name} | O nome do esquema que contém {table_name}. Se o item suportar esquemas, deve incluir {schema_name}. |
| {table_name} | O nome da tabela a que se aplica o predicado RLS. Este valor deve corresponder exatamente ao nome da tabela, caso contrário o RLS não mostra linhas. Use colchetes [] quadrados para escapar dos nomes das tabelas com caracteres especiais. Por exemplo, SELECT * FROM [dbo].[Secret.Table]. |
| {booleano_nível_coluna} | Uma instrução booleana contendo os seguintes componentes: * Nome da coluna: O nome de uma coluna em {table_name}, tal como aparece no esquema de registo Delta. Pode formatar os nomes das colunas como {column_name} ou {table_name}. {column_name}. * Operador: Um dos operadores suportados que avalia o nome e o valor da coluna para um valor booleano. * Valor: Um valor estático ou conjunto de valores para avaliar. Você pode ter uma ou mais instruções booleanas separadas por AND ou OR. |
Operadores suportados
As regras de segurança ao nível da linha suportam os seguintes operadores e palavras-chave:
| Operator | Description |
|---|---|
= (iguais) |
Avalia como true se os dois valores são do mesmo tipo de dados e correspondem exatamente. |
<> (não é igual) |
Avalia como true se os dois valores não forem do mesmo tipo de dados e não corresponderem exatamente. |
> (maior que) |
Resulta em verdadeiro se o valor da coluna for maior do que o valor de referência. Para valores de cadeia de caracteres, esse operador usa a comparação de bits para determinar se uma cadeia de caracteres é maior do que a outra. |
>= (maior ou igual a) |
Avaliado como verdadeiro se o valor da coluna for maior ou igual ao valor da avaliação. Para valores de cadeia de caracteres, esse operador usa a comparação de bits para determinar se uma cadeia de caracteres é maior ou igual à outra. |
< (menos que) |
Avalia como verdadeiro se o valor da coluna for menor que o valor de referência. Para valores de cadeia de caracteres, esse operador usa a comparação de bits para determinar se uma cadeia de caracteres é menor que a outra. |
<= (inferior ou igual a) |
Avalia como verdadeiro se o valor da coluna for menor ou igual ao valor de avaliação. Para valores de cadeia de caracteres, esse operador usa a comparação de bits para determinar se uma cadeia de caracteres é menor ou igual à outra. |
IN |
Avalia como verdadeiro se algum dos valores de avaliação for do mesmo tipo de dados e coincidir exatamente com o valor da coluna. |
NOT |
Avalia como true se algum dos valores de avaliação não for do mesmo tipo de dados ou não corresponder exatamente ao valor da coluna. |
AND |
Combina a instrução anterior e a subsequente usando uma operação BOOLEANA AND. Ambas as afirmações devem ser verdadeiras para que todo o predicado seja verdadeiro. |
OR |
Combina a instrução anterior e a subsequente usando uma operação BOOLEANA de OR. Uma das afirmações deve ser verdadeira para que todo o predicado seja verdadeiro. |
TRUE |
A expressão booleana para verdadeiro. |
FALSE |
A expressão booleana que representa o valor falso. |
BLANK |
O tipo de dado em branco, que podes usar com o operador IS. Por exemplo, row IS BLANK. |
NULL |
O tipo de dado nulo, que podes usar com o operador IS. Por exemplo, row IS NULL. |