2017-01-24 2 views
1

У меня есть два пользователя admin в моей базе данных postgres admin1 и admin2. Теперь я использую admin1 и создаю новую пользовательскую temp. Я могу удалить этого пользователя, используя login admin1, но когда я пытаюсь удалить его с помощью admin2, он дает мне «роль» temp «не может быть отброшена, потому что некоторые объекты зависят от нее».Drop Postgresql пользователь, созданный пользователем

Создание администратора заявления пользователей являются:

create user admin2 with password '...admin2'; 
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO admin2 WITH grant option; 
ALTER USER admin2 CREATEROLE; 

Есть еще разрешение, которое мне нужно дать admin2, так что я могу удалить темп?

Создание заявления пользователя Темп являются:

create user temp with password '... temp'; 
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO temp; 

Мои заявления Темп падения пользователей являются:

REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM temp; 
REVOKE ALL ON DATABASE database FROM temp; 
DROP USER temp; 
+0

версия сервера, пожалуйста, –

ответ

0

CREATEROLE это прийти, чтобы иметь возможность удалить роли. Но все зависимости нужно удалить. В сообщении об ошибке сообщается о наличии зависимостей.

В соответствии с manual вы можете удалить зависимости либо REASSIGN OWNED, либо DROP OWNED. Например

REASSIGN OWNED BY temp TO admin2; 
+0

Если то так, то почему она удаляется при удалении его с помощью пользователю (Admin1), который создал пользователь без переназначения принадлежит. – Joy

+0

Хорошая точка, не уверен, что вы уверены, что работа отзыва выполняется правильно, когда выполняется как admin2? – Eelke

Смежные вопросы