Иллюстрированный самоучитель по PostgreSQL

Управление пользователями

В листинге 10.6 изменяются параметры пользователя salesuser. Секция WITH PASSWORD назначает пароль n3Wp4s4, а секция VALID UNTIL указывает, что этот пароль действует до 1 января 2003 года.

Листинг 10.6. Изменение пароля.

tempiatel=# ALTER USER salesuser
tempiatel-# WITH PASSWORD 'n3WP4s4'
tempiatel-# VALID UNTIL '2003-01-01':
ALTER USER

Иногда пользователю требуется предоставить дополнительные права помимо тех, которые предоставлены ему при создании. Ключевое слово CREATEUSER в листинге 10.7 изменяет права пользователя sal esuser и превращает его в суперпользователя. При этом отдельное назначение права CREATEDB становится излишним, поскольку это право предоставляется суперпользователям автоматически.

Листинг 10.7. Предоставление прав суперпользователя.

tempiatel=# ALTER USER salesuser
tempiatel-# CREATEUSER;
ALTER USER

Возможна и обратная ситуация – когда требуется отобрать у пользователя права, предоставленные ему в прошлом. Задача легко решается суперпользователем при помощи ключевых слов NOCREATEDB или NOCREATEUSER (листинг 10.8).

Листинг 10.8. Отзыв прав суперпользователя.

tempiatel=# ALTER USER salesuser
tempiatel-# NOCREATEDB NOCREATEUSER;
ALTER USER

Внимание
Суперпользователи могут лишать прав других суперпользователей и даже удалять их, поэтому предоставление права CREATEUSER требует чрезвычайной осторожности
.

Удаление пользователей

Аутентифшщрованный суперпользователь может в любой момент удалить из системы любого пользователя PostgreSQL. Существует единственное ограничение – нельзя удалить пользователя, который является владельцем базы данных. Прежде чем удалять пользователя, необходимо удалить из системы принадлежащие ему базы.

Задача удаления пользователей PostgreSQL, как и их создание, решается двумя способами. Вы можете воспользоваться командой SQL DROP USER и приложением командной строки dropuser.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.