As visualizações seguras parametrizadas no AlloyDB para PostgreSQL permitem aplicar o controle de acesso a linhas no nível do aplicativo para que os usuários possam ter acesso de visualização apenas aos dados que estão autorizados a acessar. Criadas como uma extensão das visualizações seguras do PostgreSQL, elas permitem incluir parâmetros nomeados específicos do aplicativo nas definições de visualização e transmitir valores de parâmetro que se aplicam durante a execução da consulta.
Veja a seguir um exemplo de visualização segura parametrizada:
CREATE VIEW secure_checked_items WITH (security_barrier) AS
SELECT bag_id, timestamp, location
FROM checked_items t
WHERE customer_id = $@app_end_userid;
É possível consultar visualizações seguras parametrizadas usando a
função execute_parameterized_query ou executando a
instrução EXECUTE .. WITH VIEW PARAMETERS.
Para mais informações, consulte
Gerenciar a segurança de dados de aplicativos usando visualizações seguras parametrizadas do AlloyDB.
Benefícios das visualizações seguras parametrizadas
As visualizações seguras parametrizadas são adequadas para gerenciar a segurança de dados no nível do banco de dados, especialmente ao lidar com consultas ad hoc de fontes não confiáveis, como aquelas traduzidas de linguagem natural. Essas visualizações oferecem uma maneira flexível de implementar o controle de acesso refinado.
Por exemplo, considere um aplicativo que rastreia a bagagem despachada dos clientes. Um cliente com o ID do usuário 12345 pergunta: "Onde está minha mala?" Nesse cenário, as visualizações seguras parametrizadas garantem que a consulta retorne apenas as linhas acessíveis ao usuário que a enviou, por exemplo, linhas vinculadas ao ID do usuário 12345.
Redução de riscos de segurança
As visualizações seguras parametrizadas ajudam a reduzir os riscos de segurança quando os usuários finais executam consultas não confiáveis, como consultas em linguagem natural, no banco de dados. Esses riscos incluem:
Comandos maliciosos: os usuários podem tentar manipular o modelo subjacente para acessar todos os dados do aplicativo.
Consultas SQL de escopo amplo: os modelos de linguagem grandes (LLMs) podem gerar consultas SQL que expõem dados sensíveis, mesmo em consultas de usuários bem-intencionadas.
Ao usar visualizações seguras parametrizadas, é possível restringir o intervalo de linhas disponíveis para usuários individuais do aplicativo. Esse controle ajuda a proteger os dados do aplicativo, independentemente de como os usuários formulam as consultas.
Gerenciamento de acesso aos dados
As visualizações seguras parametrizadas resolvem desafios comuns no gerenciamento do acesso a dados para um número grande e crescente de usuários.
Gerenciamento simplificado de usuários:com as visualizações seguras parametrizadas, é possível usar um único papel de banco de dados para atender a todos os usuários finais, em vez de usar métodos que podem exigir a criação de um usuário ou papel de banco de dados separado para cada usuário final. As visualizações seguras parametrizadas ajudam a simplificar o gerenciamento de usuários e conexões para aplicativos em que cada usuário final precisa de acesso apenas aos próprios dados.
Por exemplo, em um aplicativo de companhia aérea em que os clientes só devem ver as próprias reservas, é possível definir uma única visualização segura parametrizada pelo identificador de usuário final. Essa visualização permite que um único papel de banco de dados, com acesso à visualização, não à tabela subjacente, atenda a todos os usuários, o que simplifica o gerenciamento de usuários e as conexões de banco de dados.
Aplicação de segurança simplificada:as visualizações seguras parametrizadas incorporam controles de acesso de forma inerente. Quando uma visualização é consultada, os parâmetros de segurança definidos são aplicados de forma consistente, independentemente do usuário que acessa a visualização. Essa abordagem é diferente de situações em que as políticas de segurança subjacentes nas tabelas base podem não ser aplicadas automaticamente às visualizações sem configuração extra.
Para mais informações sobre os mecanismos de segurança atuais no PostgreSQL, como as políticas de segurança no nível da linha (RLS, na sigla em inglês), consulte Políticas de segurança de linha.
Mecanismo de segurança
As visualizações seguras parametrizadas oferecem aos desenvolvedores de aplicativos segurança de dados e controle de acesso a linhas usando os seguintes métodos:
- As visualizações criadas com a opção
WITH (security_barrier)oferecem segurança no nível da linha, impedindo que funções e operadores escolhidos de forma maliciosa recebam valores de linhas até que a visualização tenha concluído o trabalho. Para mais informações sobre a cláusulaWITH (security_barrier), consulte Regras e privilégios. - A parametrização usando parâmetros de visualização nomeados permite uma visualização restrita do banco de dados parametrizado por valores fornecidos pelo aplicativo com base na segurança no nível do aplicativo, como a autenticação do usuário final.
- A aplicação de restrições adicionais em consultas que acessam visualizações parametrizadas é útil para aplicativos que executam consultas não confiáveis de usuários finais, como aquelas geradas pela geração de linguagem natural para SQL de IA. Essa restrição impede que as consultas escapem do envelope de segurança fornecido pelas visualizações seguras parametrizadas e ajuda a gerenciar o uso de recursos. Para mais informações sobre restrições de consulta, consulte Restrições aplicadas a consultas.
Limitações
É necessário ativar a flag de visualização parametrizada separadamente em cada instância do AlloyDB. Os objetos de visualização parametrizados criados na instância principal são propagados para instâncias de pool de leitura e réplicas entre regiões. No entanto, a configuração da flag
parameterized_views.enablednão é aplicada automaticamente e precisa ser definida manualmente em cada instância. Para mais informações, consulte Antes de começar.Não é possível consultar visualizações parametrizadas em uma instância de pool de leitura ou em uma réplica entre regiões antes de ativar a flag
parameterized_views.enabledem cada instância.
A seguir
- Gerenciar a segurança de dados de aplicativos usando visualizações seguras parametrizadas.
- Proteja e controle o acesso aos dados do aplicativo usando visualizações seguras parametrizadas.