Esta página descreve as vistas seguras parametrizadas no AlloyDB para PostgreSQL, que oferecem segurança dos dados da aplicação e controlo de acesso ao nível da linha através de vistas SQL e ajudam a garantir que os utilizadores da aplicação só podem ver os dados aos quais devem ter acesso.
As vistas seguras parametrizadas são uma extensão das vistas seguras do PostgreSQL, que lhe permitem usar parâmetros de vista com nome específicos da aplicação em definições de vista. Esta capacidade fornece uma interface que recebe uma consulta e valores para os parâmetros denominados. A interface executa a consulta com esses valores, que são usados durante a execução da consulta.
Segue-se um exemplo de uma 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;
Pode consultar vistas seguras parametrizadas através do execute_parameterized_query
procedimento armazenado ou executando a declaração EXECUTE .. WITH VIEW PARAMETERS
.
Para mais informações, consulte o artigo
Gerir a segurança dos dados das aplicações através de vistas seguras parametrizadas do AlloyDB.
Vantagens das visualizações seguras parametrizadas
As vistas seguras parametrizadas são adequadas para gerir a segurança dos dados ao nível da base de dados, especialmente quando lida com consultas ad hoc de origens não fidedignas, como as traduzidas a partir da linguagem natural. Estas vistas oferecem uma forma flexível de implementar o controlo de acesso detalhado.
Por exemplo, considere uma aplicação que monitoriza a bagagem registada dos clientes. Um cliente com o ID de utilizador 12345 pergunta: "Onde está a minha mala?" Neste cenário, as visualizações seguras parametrizadas garantem o seguinte:
A consulta devolve apenas linhas acessíveis ao utilizador que enviou a consulta, por exemplo, linhas associadas ao ID do utilizador 12345.
Mitigação de riscos de segurança
As vistas seguras parametrizadas ajudam a mitigar os riscos de segurança quando os utilizadores finais executam consultas não fidedignas, como consultas de linguagem natural, na sua base de dados. Estes riscos incluem o seguinte:
- Comandos maliciosos: os utilizadores podem tentar manipular o modelo subjacente para aceder a todos os dados da aplicação.
- Consultas SQL de âmbito geral: os modelos de linguagem (conteúdo extenso) (MDLs/CE) podem gerar consultas SQL que expõem dados confidenciais, mesmo a partir de consultas de utilizadores bem-intencionadas.
Ao usar visualizações seguras parametrizadas, pode restringir o intervalo de linhas disponíveis para utilizadores individuais da aplicação. Este controlo garante a segurança dos dados, independentemente da forma como os utilizadores formulam as respetivas consultas.
Gestão de acessos a dados
As vistas seguras parametrizadas resolvem desafios comuns na gestão do acesso aos dados para um número grande e crescente de utilizadores.
Gestão de utilizadores simplificada: com visualizações seguras parametrizadas, pode usar uma única função de base de dados para servir todos os utilizadores finais, em vez de usar métodos que podem exigir a criação de um utilizador ou uma função de base de dados separada para cada utilizador final. As vistas seguras parametrizadas ajudam a simplificar a gestão de utilizadores e ligações para aplicações em que cada utilizador final só precisa de aceder aos respetivos dados.
Por exemplo, numa aplicação de uma companhia aérea em que os clientes só devem ver as suas próprias reservas, pode definir uma única vista segura parametrizada que é parametrizada pelo identificador do utilizador final. Esta vista permite que uma única função de base de dados, com acesso à vista e não à tabela subjacente, sirva todos os utilizadores, o que simplifica a gestão de utilizadores e as ligações à base de dados.
Aplicação de segurança simplificada: as vistas seguras parametrizadas incorporam inerentemente controlos de acesso. Quando uma vista é consultada, os parâmetros de segurança definidos são aplicados de forma consistente, independentemente do utilizador que acede à vista. Esta abordagem contrasta com as situações em que as políticas de segurança subjacentes nas tabelas base podem não se aplicar automaticamente às vistas sem configuração adicional.
Para mais informações sobre os mecanismos de segurança existentes no PostgreSQL, como as políticas de segurança ao nível da linha (RLS), consulte o artigo Políticas de segurança ao nível da linha.
Mecanismo de segurança
As vistas seguras parametrizadas oferecem aos programadores de aplicações segurança de dados e controlo de acesso ao nível da linha através dos seguintes métodos:
- As vistas criadas através da opção
WITH (security barrier)
oferecem segurança ao nível da linha, impedindo que funções e operadores escolhidos de forma maliciosa recebam valores de linhas até que a vista tenha concluído o seu trabalho. Para mais informações acerca da cláusulaWITH (security barrier)
, consulte Regras e privilégios. - A parametrização através de parâmetros de visualização com nome permite uma visualização restrita da base de dados parametrizada por valores fornecidos pela aplicação com base na segurança ao nível da aplicação, como a autenticação do utilizador final.
- A aplicação de restrições adicionais a consultas que acedem a vistas parametrizadas é útil para aplicações que executam consultas não fidedignas de utilizadores finais, como as geradas por uma geração de linguagem natural para SQL de IA. Isto impede a saída do envelope de segurança fornecido pelas vistas seguras parametrizadas e a gestão da utilização de recursos. Para mais informações, consulte o artigo Restrições aplicadas às consultas.
Limitações
Tem de ativar a flag de visualização parametrizada separadamente em todas as instâncias do AlloyDB. Os objetos de visualização parametrizados criados na instância principal são propagados para as instâncias do conjunto de leitura e as réplicas entre regiões. No entanto, a definição da flag
parameterized_views.enabled
não é aplicada automaticamente e tem de ser definida manualmente em cada instância. Para mais informações, consulte a secção Antes de começar.Não pode consultar visualizações parametrizadas numa instância de conjunto de leitura ou numa réplica entre regiões antes de ativar a flag
parameterized_views.enabled
em cada instância.
O que se segue?
- Faça a gestão da segurança dos dados das aplicações através de vistas seguras parametrizadas.
- Proteger e controlar o acesso aos dados da aplicação através de vistas seguras parametrizadas.