Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo documenta a sintaxe para definir regras de segurança em nível de linha (RLS) na segurança OneLake. Para aplicar uma regra RLS a uma tabela, veja Criar e gerenciar papéis de segurança OneLake.
As regras RLS usam a sintaxe do 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 nenhuma linha sendo mostrada aos usuários, ou erros de consulta no endpoint de análise SQL.
Ao escrever expressões RLS, mantenha as seguintes melhores práticas em mente:
- Evite expressões vagas ou excessivamente complexas de RLS.
- Expressões fortemente tipadas com buscas inteiras ou de strings que usam "=" são as mais seguras e mais fáceis de entender.
- Use colunas inteiras para ordenação e operações maiores ou menores que.
- Evite equivalências de string se você não souber o formato dos dados de entrada, especialmente para caracteres Unicode ou sensibilidade ao acento.
A segurança em nível de linha avalia dados de cadeia como insensíveis a maiúsculas e minúsculas usando a seguinte colação para ordenação e comparação: 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 é 1.000.
Todas as regras de segurança em nível de linha têm 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'
| Placeholder | Descrição |
|---|---|
| {schema_name} | O nome do esquema que contém {table_name}. Se o item suportar esquemas, você deve incluir {schema_name}. |
| {table_name} | O nome da tabela à qual o predicado RLS se aplica. Esse valor deve corresponder exatamente ao nome da tabela, ou 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]. |
| {column_level_boolean} | Uma instrução Booliana contendo os seguintes componentes: * Nome da coluna: O nome de uma coluna em {table_name}, conforme aparece no esquema de log Delta. Você 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 Boolianas separadas por AND ou OR. |
Operadores suportados
Regras de segurança em nível de linha suportam os seguintes operadores e palavras-chave:
| Operator | Descrição |
|---|---|
= (igual a) |
Avalia como verdadeiro se os dois valores tiverem o mesmo tipo de dados e corresponderem exatamente. |
<> (não iguais) |
Avalia como verdadeiro se os dois valores não tiverem o mesmo tipo de dados e não corresponderem exatamente. |
> (maior que) |
Avalia como verdadeiro se o valor da coluna for maior que o valor de avaliação. Para valores de cadeia de caracteres, esse operador usa comparação bit a bit para determinar se uma cadeia de caracteres é maior que a outra. |
>= (maior ou igual a) |
Avalia como verdadeiro se o valor da coluna for maior ou igual ao valor de avaliação. Para valores de cadeia, esse operador usa comparação bit a bit para determinar se uma cadeia é maior ou igual à outra. |
< (menor que) |
Avalia como verdadeiro se o valor da coluna for menor que o valor de avaliação. Para valores de cadeia de caracteres, esse operador usa comparação bit a bit para determinar se uma cadeia de caracteres é menor que a outra. |
<= (menor 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 comparação bit a bit para determinar se uma cadeia de caracteres é menor ou igual à outra. |
IN |
Avalia como verdadeiro se algum dos valores de avaliação tiver o mesmo tipo de dados e corresponder exatamente ao valor da coluna. |
NOT |
Avalia como verdadeiro se algum dos valores de avaliação não tiver o 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 instruçõ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 OR. Uma das afirmações deve ser verdadeira para que toda a proposição seja verdadeira. |
TRUE |
A expressão Booliana para verdadeiro. |
FALSE |
A expressão Booliana para falso. |
BLANK |
O tipo de dado em branco, que você pode usar com o operador IS. Por exemplo, row IS BLANK. |
NULL |
O tipo de dado nulo, que você pode usar com o operador IS. Por exemplo, row IS NULL. |