×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.24. ALTER ROLE

6.1.24. ALTER ROLE

ALTER ROLE — изменение роли в базе данных

Синтаксис

ALTER ROLE role_specification [ WITH ] option [ ... ]

где option может быть:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'

ALTER ROLE name RENAME TO new_name

ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL

где role_specification может быть:

    role_name
  | CURRENT_ROLE
  | CURRENT_USER
  | SESSION_USER

Описание

Команда ALTER ROLE изменяет атрибуты роли в Digital Q.DataBase.

Первый вариант этой команды, перечисленный в синтаксисе, может изменять многие атрибуты роли, которые могут быть указаны в CREATE ROLE. (Охватываются все возможные атрибуты, за исключением того, что нет опций для добавления или удаления членства; используйте GRANT и REVOKE для этого.) Атрибуты, не упомянутые в команде, сохраняют свои предыдущие значения. Суперпользователи базы данных могут изменять любые из этих настроек для любой роли, за исключением изменения свойства SUPERUSER для загрузочного суперпользователя. Роли, не являющиеся суперпользователями, но имеющие привилегию CREATEROLE, могут изменять большинство этих свойств, но только для ролей, не являющихся суперпользователями и не являющихся ролями репликации, для которых им была предоставлена ADMIN OPTION. Не-суперпользователи не могут изменять свойство SUPERUSER и могут изменять свойства CREATEDB, REPLICATION и BYPASSRLS только если сами обладают соответствующим свойством. Обычные роли могут изменять только свой собственный пароль.

Второй вариант изменяет имя роли. Суперпользователи базы данных могут переименовывать любые роли. Роли, имеющие привилегию CREATEROLE, могут переименовывать роли, не являющиеся суперпользователями, для которых им была предоставлена ADMIN OPTION. Пользователь текущего сеанса не может быть переименован. (Если это необходимо, подключитесь под другим пользователем.) Поскольку пароли, зашифрованные с помощью MD5, используют имя роли в качестве криптографической соли, переименование роли очищает её пароль, если пароль зашифрован с помощью MD5.

Оставшиеся варианты изменяют значение по умолчанию на уровне сеанса для конфигурационной переменной роли, либо для всех баз данных, либо, когда указано предложение IN DATABASE, только для сеансов в указанной базе данных. Если вместо имени роли указано ALL, это изменяет настройку для всех ролей. Использование ALL с IN DATABASE фактически эквивалентно использованию команды ALTER DATABASE ... SET ....

Всякий раз, когда роль впоследствии начинает новый сеанс, указанное значение становится значением по умолчанию для сеанса, переопределяя любую настройку, присутствующую в postgresql.conf или переданную через командную строку postgres. Это происходит только во время входа в систему; выполнение SET ROLE или SET SESSION AUTHORIZATION не приводит к установке новых значений конфигурации. Настройки, установленные для всех баз данных, переопределяются настройками для конкретной базы данных, привязанными к роли. Настройки для конкретных баз данных или конкретных ролей переопределяют настройки для всех ролей.

Суперпользователи могут изменять значения по умолчанию на уровне сеанса для любого пользователя. Роли, имеющие привилегию CREATEROLE, могут изменять значения по умолчанию для ролей, не являющихся суперпользователями, для которых им была предоставлена ADMIN OPTION. Обычные роли могут устанавливать значения по умолчанию только для себя. Некоторые конфигурационные переменные не могут быть установлены таким образом или могут быть установлены только если команду выдаёт суперпользователь. Только суперпользователи могут изменять настройку для всех ролей во всех базах данных.

Параметры

name #

Имя роли, атрибуты которой нужно изменить.

CURRENT_ROLE
CURRENT_USER #

Изменить текущего пользователя вместо явно указанной роли.

SESSION_USER #

Изменить пользователя текущего сеанса вместо явно указанной роли.

SUPERUSER
NOSUPERUSER
CREATEDB
NOCREATEDB
CREATEROLE
NOCREATEROLE
INHERIT
NOINHERIT
LOGIN
NOLOGIN
REPLICATION
NOREPLICATION
BYPASSRLS
NOBYPASSRLS
CONNECTION LIMIT connlimit
[ ENCRYPTED ] PASSWORD 'password'
PASSWORD NULL
VALID UNTIL 'timestamp' #

Эти предложения изменяют атрибуты, изначально заданные командой CREATE ROLE. Подробнее см. на справочной странице CREATE ROLE.

new_name #

Новое имя роли.

database_name #

Имя базы данных, в которой должна быть установлена конфигурационная переменная.

configuration_parameter
value #

Установить значение по умолчанию на уровне сеанса для указанной конфигурационной переменной для этой роли равным заданному значению. Если value — это DEFAULT или, что равносильно, используется RESET, то настройка на уровне роли удаляется, так что роль будет наследовать общесистемную настройку по умолчанию в новых сеансах. Используйте RESET ALL для очистки всех настроек на уровне роли. SET FROM CURRENT сохраняет текущее значение параметра в сеансе как настройку на уровне роли. Если указано IN DATABASE, конфигурационный параметр устанавливается или удаляется только для данной роли и базы данных.

Настройки переменных на уровне роли вступают в силу только при входе в систему; команды SET ROLE и SET SESSION AUTHORIZATION не обрабатывают настройки переменных на уровне роли.

См. SET и Глава 3.4 для получения дополнительной информации о допустимых именах параметров и их значениях.

Примечания

Используйте CREATE ROLE для добавления новых ролей и DROP ROLE для удаления роли.

ALTER ROLE не может изменять членство в ролях. Используйте для этого GRANT и REVOKE.

Необходимо соблюдать осторожность при указании незашифрованного пароля с помощью этой команды. Пароль будет передан на сервер в открытом виде, и он также может быть записан в истории команд клиента или в журнал сервера. psql содержит команду \password, которую можно использовать для изменения пароля роли без раскрытия пароля в открытом виде.

Также можно привязать значение по умолчанию на уровне сеанса к конкретной базе данных, а не к роли; см. ALTER DATABASE. В случае конфликта настройки для конкретной базы данных и роли переопределяют настройки на уровне роли, которые, в свою очередь, переопределяют настройки на уровне базы данных.

Примеры

Изменить пароль роли:

ALTER ROLE davide WITH PASSWORD 'hu8jmn3';

Удалить пароль роли:

ALTER ROLE davide WITH PASSWORD NULL;

Изменить дату истечения срока действия пароля, указав, что пароль должен истечь в полдень 4 мая 2015 года с использованием часового пояса, который на один час опережает UTC:

ALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';

Сделать пароль действительным навсегда:

ALTER ROLE fred VALID UNTIL 'infinity';

Дать роли возможность управлять другими ролями и создавать новые базы данных:

ALTER ROLE miriam CREATEROLE CREATEDB;

Задать роли нестандартное значение параметра maintenance_work_mem:

ALTER ROLE worker_bee SET maintenance_work_mem = 100000;

Задать роли нестандартное, специфичное для базы данных значение параметра client_min_messages:

ALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;

Совместимость

Оператор ALTER ROLE является расширением Digital Q.DataBase.

Смотрите также

CREATE ROLE, DROP ROLE, ALTER DATABASE, SET
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению