O PolarDB for PostgreSQL é um serviço de banco de dados gerenciado. Diferentemente de uma instalação autônoma do PostgreSQL, ele não expõe uma conta superuser nativa. Em vez disso, utiliza um modelo de controle de acesso baseado em função (RBAC) com dois tipos de conta: privilegiadas e padrão. Cada tipo possui um conjunto específico de permissões que equilibra flexibilidade operacional e segurança da plataforma.
Permissões da conta privilegiada
Uma conta privilegiada pode executar as seguintes operações:
Crie, modifique, visualize e exclua objetos fora do sistema — tabelas, índices, tipos, views, funções e procedures. As permissões de objeto são compartilhadas entre todos os usuários privilegiados; portanto, qualquer usuário privilegiado pode acessar objetos pertencentes a outro usuário privilegiado.
Crie bancos de dados — consulte Criar um banco de dados.
Crie extensões — consulte Extensões.
Crie usuários — com permissões limitadas às da própria conta criadora. Consulte Criar um usuário.
Crie e use gatilhos de evento — consulte Criar um gatilho.
Crie e modifique tipos — consulte Criar um tipo de objeto.
Invocar a coleta de lixo — consulte Mecanismo de coleta de lixo.
Crie e modifique foreign data wrappers (FDWs) — consulte Usar oss_fdw para ler e gravar arquivos de texto externos.
Crie publicações e assinaturas para replicação lógica.
Usar transações de duas fases.
Enviar sinais a processos de backend que não sejam de superusuário.
Visualize o status dos processos em segundo plano.
Crie publicações e assinaturas
-- Create a publication
CREATE PUBLICATION my_publication FOR TABLE test_t;
-- Create a subscription
CREATE SUBSCRIPTION my_subscription
CONNECTION 'channel_name=XXXX dbname=XXXX user=XXXX password=XXXX'
PUBLICATION my_publication;
As assinaturas exigem um channel. Para criar um canal, consulte Canais de rede. Se ocorrer um erro ao criar a assinatura, entre em contato conosco.
Usar transações de duas fases
-- session_1
BEGIN;
INSERT INTO t VALUES (1,'a');
PREPARE TRANSACTION 'test_1';
-- session_2
COMMIT PREPARED 'test_1';
-- Or roll back
ROLLBACK PREPARED 'test_1';
Enviar sinais
-- Cancel or terminate a non-superuser backend process (PID 4300)
SELECT pg_cancel_backend(4300);
SELECT pg_terminate_backend(4300);
Visualize o status dos processos em segundo plano
SELECT * FROM pg_stat_activity;
Permissões da conta padrão
Uma conta padrão pode:
Conectar-se a todos os bancos de dados.
Consultar objetos para os quais a conta recebeu permissões PUBLIC.
Permissões indisponíveis para todos os usuários
As operações a seguir são bloqueadas para todas as contas, tanto privilegiadas quanto padrão, pois representam riscos de segurança em um ambiente gerenciado:
|
Operação |
Detalhes |
|
Modifique parâmetros do sistema |
Indisponível para qualquer tipo de conta |
|
Crie tablespaces |
Indisponível para qualquer tipo de conta |
|
Encerrar processos de superusuário |
Indisponível para qualquer tipo de conta |
|
Executar linguagens não confiáveis |
A linguagem |
Permissões de grupos de usuários
O PolarDB for PostgreSQL herda várias funções predefinidas do PostgreSQL. Essas funções se combinam com as permissões da conta privilegiada, e o conjunto final de permissões corresponde à união de ambas.
|
Função |
Status |
O que concede |
|
|
Total |
Acesso de leitura a todas as views de estatísticas (por exemplo, |
|
|
Total |
Envio de sinais ( |
|
|
Total |
Grupo de usuários privilegiados específico do PolarDB. Concede o conjunto completo de permissões de usuário privilegiado descritas neste documento |
|
|
Total |
Uso de replicação por streaming. Propriedade total |
|
|
Total |
Leitura de dados de monitoramento a partir de views e funções de estatísticas. O acesso de leitura e gravação a arquivos locais é bloqueado |
|
|
Restrito |
Leitura e gravação em qualquer tabela de usuário e leitura da maioria das tabelas do sistema. O acesso a algumas tabelas do sistema é bloqueado por motivos de segurança |
|
|
Restrito |
Leitura de valores de parâmetros dentro do escopo de permissão da conta. O acesso a alguns parâmetros é bloqueado por motivos de segurança |
|
|
Bloqueado |
Não suportado. O acesso de leitura e gravação a arquivos locais do servidor está indisponível no PolarDB for PostgreSQL |
|
|
Bloqueado |
Não suportado. A execução de comandos binários no servidor está indisponível no PolarDB for PostgreSQL |