Desejo conceder dropprivilégios em todas as tabelas e funções (não apenas aquelas pertencentes ao usuário) em determinado esquema de um banco de dados específico para uma função específica. No entanto, GRANT ALL PRIVILEGESnão é suficiente e não achei como fazer sem tornar a função um superusuário - o superusuário tem direitos sobre outros bancos de dados no mesmo servidor, o que não é o que eu quero. Eu não me importaria de privilégios de superusuário limitados a um banco de dados específico, mas não sei como fazê-lo.
Meu código:
CREATE USER _administrator PASSWORD 'pwd12345';
CREATE ROLE administrator NOLOGIN ADMIN _administrator;
GRANT ALL PRIVILEGES ON DATABASE "myDB" TO administrator;
GRANT ALL PRIVILEGES ON SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO administrator;
administratoré o grupo de myDBadministradores de banco de dados, _administratoré a função mais poderosa que meu aplicativo cliente poderá fazer logon como.
O que eu perdi ou fiz de errado?