Eu tenho um banco de dados chamado somedb
de propriedade do usuário someuser
. Eu revoguei todos os privilégios de público para este banco de dados.
Desejo conceder privilégios de conexão a anotheruser
, mas não quero anotheruser
poder consultar nenhuma das tabelas que não são do sistema (ou seja, qualquer tabela criada por someuser
) em seu esquema público. Isso é possível? Ou preciso mover todas as tabelas do esquema público para um esquema diferente?
Quando eu me GRANT CONNECT ON DATABASE somedb TO anotheruser;
conecto ao banco de dados somedb
como usuário anotheruser
, posso consultar todas as tabelas em somedb
.
Tentei o seguinte, mas não funcionou:
REVOKE ALL ON somedb.public.sometable FROM anotheruser;
ALTER DEFAULT PRIVILEGES FOR USER anotheruser IN SCHEMA public
REVOKE ALL ON TABLES FROM anotheruser;
ALTER DEFAULT PRIVILEGES FOR USER anotheruser IN SCHEMA public
REVOKE ALL ON SEQUENCES FROM anotheruser;
Pode ser útil saber que anotheruser
possui SELECT e outros privilégios em um banco de dados diferente no mesmo servidor.