Desejo conceder drop
privilé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 PRIVILEGES
nã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 myDB
administradores 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?