Управление пользователями
В листинге 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.