Treinamento SQL Server

Módulo 27 — Segurança II: Row-Level Security, Masking & Always Encrypted

Proteção de dados em repouso e em uso.

T-SQL Nível Avançado Hands-on Atualizado: 28 ago 2025

1) Row-Level Security (RLS)

CREATE FUNCTION sec.fn_rls(@User sysname, @UF char(2)) RETURNS TABLE WITH SCHEMABINDING AS
RETURN SELECT 1 WHERE @UF = CAST(SESSION_CONTEXT(N'uf') AS char(2));

2) Dynamic Data Masking

ALTER TABLE dbo.Clientes ALTER COLUMN CPF ADD MASKED WITH (FUNCTION='partial(0,"***-***-",4)');

3) Always Encrypted

Criptografia cliente-servidor; servidor não vê dados em claro.

4) Chaves CMK/CEK

CMK no cliente/AKV; CEK no DB.

5) Desempenho & Limitações

6) Laboratório

EXEC sp_set_session_context @key=N'uf', @value='SP';

7) Exercícios

  1. Aplicar DDM em 2 colunas.

8) Gabarito

CREATE SECURITY POLICY ...

9) Boas Práticas

10) Próximos Passos