Quiero otorgar drop
privilegios en todas las tablas y funciones (no solo en las propiedad del usuario) en cierto esquema de una base de datos específica para un rol específico. Sin embargo, GRANT ALL PRIVILEGES
no es suficiente y no encontré cómo hacerlo sin convertir el rol en superusuario: el superusuario tiene derechos sobre otras bases de datos en el mismo servidor, que no es lo que quiero. No me importarían los privilegios de superusuario limitados a una base de datos específica, pero no estoy seguro de cómo hacerlo.
Mi 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
es el grupo de myDB
administradores de bases de datos, _administrator
es la función más poderosa con la que mi aplicación cliente podrá iniciar sesión.
¿Qué extrañé o hice mal?
fuente