createuser
Эта страница переведена при помощи нейросети GigaChat.
createuser
— создает новую учетную запись пользователя PostgreSQL.
Синтаксис
createuser [connection-option...] [option...] [username]
Описание
createuser
— утилита для создания новых пользователей PostgreSQL (точнее — ролей). Пользователь, выполняющий эту команду, должен быть суперпользователем или иметь права CREATEROLE
.
Если необходимо создать роль с правами SUPERUSER
, REPLICATION
или BYPASSRLS
, подключитесь как суперпользователь — прав CREATEROLE
в этом случае будет недостаточно. Учетные записи с правами суперпользователя имеют неограниченный доступ и могут обходить любые проверки прав, поэтому предоставлять такие права следует с особой осторожностью, даже CREATEROLE
дает значительные полномочия.
createuser
является оболочкой для SQL-команды CREATE ROLE. По своей эффективности она не отличается от создания роли другими способами, доступными в сервере PostgreSQL.
Параметры
Для утилиты createuser
существуют следующие параметры командной строки:
username
- Задает имя создаваемого пользователя PostgreSQL. Оно не должно совпадать с уже существующими ролями в этом экземпляре PostgreSQL.
-a role
--with-admin=role
- Задает существующую роль, которая автоматически добавляется членом новой роли с опцией администратора, предоставляя ей право выдавать членство в новой роли другим пользователям. Можно указать несколько существующих ролей, написав несколько переключателей
-a
.
-c number
--connection-limit=number
- Устанавливает максимальное допустимое количество соединений для нового пользователя. По умолчанию ограничений нет.
-d
--createdb
- Разрешает пользователю создавать базы данных.
-D
--no-createdb
- Запрещает пользователю создавать базы данных (значение по умолчанию).
-e
--echo
- Выводит на экран команды, которые
createuser
отправляет на сервер.
-E
--encrypted
- Устаревший параметр, но еще работает для совместимости.
-g role
--member-of=role
--role=role (устаревший)
- Указывает, что новая роль должна автоматически стать членом указанной существующей роли. Несколько существующих ролей можно задать, указав несколько переключателей
-g
.
-i
--inherit
- Включает наследование привилегий от ролей, в которых состоит создаваемая роль (по умолчанию).
-I
--no-inherit
- Отключает автоматическое наследование привилегий от ролей, в которых состоит создаваемая роль.
--interactive
- Запрашивает имя пользователя и/или ключи
-d
/-D
,-r
/-R
,-s
/-S
, если они не указаны в командной строке. Такое поведение было стандартным до версии 9.1 PostgreSQL.
-l
--login
- Разрешает пользователю подключаться к серверу (имя пользователя может быть идентификатором начального пользователя сеанса). Значение по умолчанию.
-L
--no-login
- Запрещает пользователю подключаться к серверу (роль без привилегий для входа полезна для управления разрешениями базы данных).
-m role
--with-member=role
- Задает существующую роль, которая автоматически добавляется членом новой роли. Можно указать несколько существующих ролей, написав несколько переключателей
-m
.
-P
--pwprompt
- Запрашивает ввод пароля для создаваемого пользователя. Удобно, если предполагается аутентификация по паролю.
-r
--createrole
- Предоставляет пользователю право создавать, изменять и удалять другие роли, добавлять для них комментарии и изменять метку безопасности, а также выдавать или отбирать членство в любых ролях (привилегия
CREATEROLE
). Подробнее о возможностях привилегии приведено в разделе «Атрибуты ролей».
-R
--no-createrole
- Запрещает создание новых ролей (значение по умолчанию).
-s
--superuser
- Назначает новому пользователю статус суперпользователя.
-S
--no-superuser
- Не предоставляет статус суперпользователя (значение по умолчанию).
-v timestamp
--valid-until=timestamp
- Устанавливает дату и время после истечения которых пароль роли становится недействительным. По умолчанию срок действия пароля неограничен.
-V
--version
- Выводит версию
createuser
и завершается.
--bypassrls
- Новый пользователь будет обходить каждую политику безопасности на уровне строк (RLS).
--no-bypassrls
- Новый пользователь не будет обходить политики безопасности на уровне строк (RLS). Это значение по умолчанию.
--replication
- Предоставляет пользователю право использовать потоковую репликацию (
REPLICATION
). Более подробно описано в документации по CREATE ROLE.
--no-replication
- Не предоставляет права
REPLICATION
(поведение по умолчанию). Более подробно описано в документации по CREATE ROLE. Это поведение по умолчанию.
-?
--help
- Показывает справку о параметрах командной строки утилиты
createuser
и завершается.
-h host
--host=host
- Указывает хост компьютера, на котором запущен сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета.
-p port
--port=port
- Указывает TCP-порт или расширение файла локального Unix-сокета для подключения к серверу.
-U username
--username=username
- Указывает имя пользователя для подключения (не имя пользователя, которое нужно создать).
-w
--no-password
- Отключает запрос на ввод пароля. Если сервер требует аутентификации по паролю и пароль недоступен другими способами, такими как файл
.pgpass
, попытка подключения завершится неудачей. Параметр полезен в пакетных заданиях и сценариях, где нет пользователя, который мог бы ввести пароль.
-W
--password
- Запрашивает пароль перед подключением к основному серверу.
Параметр не является обязательным, поскольку
createuser
автоматически запросит пароль, если сервер требует аутентификацию паролем. Однако утилита потратит попытку подключения, чтобы выяснить, что сервер хочет пароль. В некоторых случаях стоит ввести-W
, чтобы избежать дополнительной попытки подключения.
Переменные окружения
Утилита поддерживает переменные окружения:
PGHOST
PGPORT
PGUSER
PG_COLOR
PG_COLOR
указывает, использовать ли цвет в диагностических сообщениях. Возможные значения — always
, auto
и never
.
Утилита createuser
использует переменные окружения, поддерживаемые libpq
.
Диагностика
В случае возникновения трудностей, обратитесь в разделы CREATE ROLE и psql.
Сервер базы данных должен быть запущен на целевом хосте. Кроме того, будут применяться стандартные настройки подключения и переменные окружения, применяемые библиотекой интерфейса libpq
.
Примеры
Создание пользователя joe
на сервере баз данных по умолчанию:
$ createuser joe
Создание пользователя joe
на сервере баз данных по умолчанию с запросом некоторых дополнительных атрибутов:
$ createuser --interactive joe
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Создание пользователя joe
с использованием сервера на хосте eden
, порт 5000, с явно указанными атрибутами и просмотром SQL команды:
$ createuser -h eden -p 5000 -S -D -R -e joe
CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
Создание пользователя joe
как суперпользователя и назначение пароля с просмотром SQL команды:
$ createuser -P -s -e joe
Enter password for new role: xyzzy
Enter it again: xyzzy
CREATE ROLE joe PASSWORD 'md5b5f5ba1a423792b526f799ae4eb3d59e' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
В приведенном выше примере новый пароль фактически не отображается при вводе, но для ясности показано, что было введено. Пароль шифруется перед отправкой клиенту.