Je veux accorder des drop
privilèges sur toutes les tables et fonctions (pas seulement celles appartenant à l'utilisateur) dans certains schémas d'une base de données spécifique à un rôle spécifique. Cependant, cela GRANT ALL PRIVILEGES
ne suffit pas et je n'ai pas trouvé comment faire sans faire du rôle un superutilisateur - le superutilisateur a des droits sur d'autres bases de données sur le même serveur, ce qui n'est pas ce que je veux. Cela ne me dérangerait pas des privilèges de superutilisateur limités à une base de données spécifique, mais je ne sais pas comment le faire.
Mon code:
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
est le groupe d' myDB
administrateurs de base de données, _administrator
est le rôle le plus puissant auquel mon application client pourra se connecter.
Qu'est-ce que j'ai raté ou fait de mal?
la source