Apresentamos nesse vídeo como habilitar o nível de segurança de linha (Row Level Security) em registros da tabela do SQL Server.
1. Criar tabela contendo os acessos dos usuários (CREATE TABLE):
O comando CREATE TABLE é usado para criar uma nova tabela no banco de dados SQL Server. Essa tabela pode ser projetada para armazenar informações relacionadas aos acessos dos usuários, como registros de login, timestamps, ou outros dados relacionados à segurança.
Exemplo:
CREATE TABLE TabelaAcessos ( UsuarioID INT PRIMARY KEY, NomeUsuario NVARCHAR(50), DataAcesso DATETIME );
2. Criar consulta de definição de segurança (SELECT):
Uma consulta de definição de segurança geralmente é uma consulta SELECT que é projetada para recuperar informações relacionadas à segurança do banco de dados. Pode ser usada para verificar as permissões de um usuário ou revisar informações sobre a política de segurança.
SELECT UsuarioID, NomeUsuario FROM TabelaAcessos WHERE NomeUsuario = 'NomeDeUsuario';
3. Criar função para validar os valores conforme a tabela de acessos (CREATE FUNCTION):
O comando CREATE FUNCTION é utilizado para criar uma função no SQL Server. Neste contexto, você pode criar uma função que valida os valores com base na tabela de acessos. Essa função pode ser usada como parte de uma política de segurança.
CREATE FUNCTION dbo.ValidarAcesso(@UsuarioID INT) RETURNS TABLE AS RETURN ( SELECT 1 AS AcessoPermitido FROM TabelaAcessos WHERE UsuarioID = @UsuarioID );
4. Criar política de segurança definindo a função como filtro (CREATE SECURITY POLICY):
O comando CREATE SECURITY POLICY é usado para criar uma política de segurança no SQL Server. Você pode definir uma função como um filtro de segurança nesta política, controlando o acesso aos dados com base nos resultados da função.
CREATE SECURITY POLICY PoliticaAcesso ADD FILTER PREDICATE dbo.ValidarAcesso(UsuarioID) ON TabelaAcessos WITH (STATE = ON);
5. Executar uma consulta SQL como um usuário diferente (EXECUTE AS USER):
O comando EXECUTE AS USER permite que uma consulta SQL seja executada como se fosse um usuário diferente. Isso pode ser útil para testar as permissões e o acesso aos dados de um usuário específico.
EXECUTE AS USER = 'NomeDeUsuario'; SELECT * FROM TabelaAcessos; REVERT;
Esses conceitos e comandos no SQL Server são fundamentais para implementar e gerenciar políticas de segurança, garantindo que os dados sejam acessados apenas por usuários autorizados.
Cientista de Dados e Consultor de Soluções Digitais e Analíticas
@fabioms