O PolarDB for PostgreSQL é um service de banco de dados gerenciado. Diferentemente de uma instalação autônoma do PostgreSQL, ele não expõe uma conta nativa superuser. Em vez disso, utiliza um modelo de controle de acesso baseado em funções (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 de conta privilegiada
Uma conta privilegiada pode executar as seguintes operações:
Criar, modificar, acessar e excluir 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.
Criar bancos de dados — consulte Create a database.
Criar extensões — consulte Extensions.
Criar usuários — com permissões limitadas às da própria conta criadora. Consulte Create a user.
Criar e usar event triggers — consulte Create a trigger.
Criar e modificar tipos — consulte Create an object type.
Invocar garbage collection — consulte Garbage collection mechanism.
Criar e modificar foreign data wrappers (FDWs) — consulte Use oss_fdw to read and write external text files.
Criar 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.
Visualizar o status de processos em segundo plano.
Criar 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;
Assinaturas exigem um channel. Para criar um canal, consulte Network channels. Se ocorrer um erro ao criar a assinatura, contact us.
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);
Visualizar o status de processos em segundo plano
SELECT * FROM pg_stat_activity;
Permissões de 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 |
|
Modificar parâmetros do sistema |
Indisponível para qualquer tipo de conta |
|
Criar 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 |
|
|
Completo |
Acesso de leitura a todas as views de estatísticas (por exemplo, |
|
|
Completo |
Envio de sinais ( |
|
|
Completo |
Grupo de usuários privilegiados específico do PolarDB. Concede o conjunto completo de permissões de usuário privilegiado descritas neste documento |
|
|
Completo |
Uso de replicação por streaming. Propriedade total |
|
|
Completo |
Leitura de dados de monitoramento em views e funções de estatísticas. O acesso de leitura e gravação a arquivos locais está 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 |