Я хочу предоставить drop
привилегии всем таблицам и функциям (не только тем, которые принадлежат пользователю) в определенной схеме конкретной базы данных для конкретной роли. Однако GRANT ALL PRIVILEGES
этого недостаточно, и я не нашел, как это сделать, не сделав роль суперпользователя - суперпользователь имеет права на другие базы данных на том же сервере, а это не то, чего я хочу. Я не возражаю против привилегий суперпользователя, ограниченных конкретной базой данных, но я не уверен, как это сделать.
Мой код:
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
это группа myDB
администраторов баз данных, _administrator
это самая мощная роль, в которую мое клиентское приложение сможет войти как.
Что я пропустил или сделал не так?
источник