CREATE ROLE требует привилегии CREATE ROLE. OR REPLACE удаляет существующую роль с тем же именем вместе с выданными ей привилегиями, поэтому дополнительно требуется привилегия DROP ROLE. Привилегия DROP ROLE требуется для каждого имени, указанного в операторе, независимо от того, существует ли уже такая роль, поэтому этот оператор нельзя использовать, чтобы узнать, какие роли существуют.
Управление ролями
Пользователю можно назначить несколько ролей. Пользователи могут применять назначенные им роли в любых комбинациях с помощью оператора SET ROLE. Итоговый набор привилегий представляет собой объединение всех привилегий всех применённых ролей. Если привилегии предоставлены пользователю напрямую, они также объединяются с привилегиями, предоставленными через роли. Пользователь может иметь роли по умолчанию, которые применяются при входе в систему. Чтобы задать роли по умолчанию, используйте оператор SET DEFAULT ROLE или оператор ALTER USER. Чтобы отозвать роль, используйте оператор REVOKE. Чтобы удалить роль, используйте оператор DROP ROLE. Удалённая роль автоматически отзывается у всех пользователей и ролей, которым она была назначена.Примеры
accountant с правом чтения данных из базы данных db.
Назначение роли пользователю mira: