createuser#

createuser

createuser

createuser — определить новую учетную запись пользователя Tantor SE

Синтаксис

createuser [connection-option...] [option...] [username]

Описание

createuser создает нового пользователя (или, точнее, роль) Tantor SE. Только суперпользователи и пользователи с привилегией CREATEROLE могут создавать новых пользователей, поэтому createuser должен быть вызван кем-то, кто может подключиться как суперпользователь или пользователь с привилегией CREATEROLE.

Если нужно создать роль с привилегиями SUPERUSER, REPLICATION или BYPASSRLS, вы должны подключиться как суперпользователь, а не просто с привилегией CREATEROLE. Быть суперпользователем означает возможность обходить все проверки прав доступа в базе данных, поэтому суперпользовательский доступ не следует предоставлять легкомысленно. CREATEROLE также передает очень обширные привилегии.

createuser - это оболочка для команды SQL CREATE ROLE. Нет эффективной разницы между созданием пользователей с помощью этой утилиты и другими методами доступа к серверу.

Опции

createuser принимает следующие аргументы командной строки:

username

Указывает имя пользователя Tantor SE, который будет создан. Это имя должно отличаться от всех существующих ролей в этой установке Tantor SE.

-c number
--connection-limit=number

Установите максимальное количество соединений для нового пользователя. По умолчанию не устанавливается ограничение.

-d
--createdb

Новому пользователю будет разрешено создавать базы данных.

-D
--no-createdb

Новому пользователю не будет разрешено создавать базы данных. Это значение по умолчанию.

-e
--echo

Отобразите команды, которые генерирует и отправляет на сервер приложение createuser.

-E
--encrypted

Эта опция устарела, но все еще принимается для обратной совместимости.

-g role
--role=role

Указывает роль, к которой эта роль будет немедленно добавлена в качестве нового участника. Можно указать несколько ролей, к которым эта роль будет добавлена в качестве участника, написав несколько переключателей -g.

-i
--inherit

Новая роль автоматически наследует привилегии ролей, к которым она принадлежит. Это является значением по умолчанию.

-I
--no-inherit

Новая роль не будет автоматически наследовать привилегии ролей, к которым она принадлежит.

--interactive

Запросите имя пользователя, если оно не указано в командной строке, а также запросите любой из вариантов -d/-D, -r/-R, -s/-S, который не указан в командной строке. (Это было поведение по умолчанию до PostgreSQL 9.1).

-l
--login

Новому пользователю будет разрешено входить в систему (то есть имя пользователя может быть использовано в качестве идентификатора начальной сессии). Это значение по умолчанию.

-L
--no-login

Новому пользователю не будет разрешено входить в систему. (Роль без привилегии входа все равно полезна как средство управления разрешениями базы данных).

-P
--pwprompt

Если указано, то createuser выдаст запрос на ввод пароля для нового пользователя. Это необязательно, если вы не планируете использовать аутентификацию по паролю.

-r
--createrole

Новому пользователю будет разрешено создавать, изменять, удалять, комментировать, изменять метку безопасности для и предоставлять или отзывать членство в других ролях; то есть, у этого пользователя будет привилегия CREATEROLE. См. role creation для получения более подробной информации о том, какие возможности предоставляются этим привилегией.

-R
--no-createrole

Новому пользователю не будет разрешено создавать новые роли. Это значение по умолчанию.

-s
--superuser

Новый пользователь будет суперпользователем.

-S
--no-superuser

Новый пользователь не будет суперпользователем. Это значение по умолчанию.

-V
--version

Выведите версию createuser и завершите работу.

--replication

Новому пользователю будет предоставлено привилегия REPLICATION, которая подробно описана в документации для CREATE ROLE.

--no-replication

Новому пользователю не будет предоставлено привилегии REPLICATION, которая подробно описана в документации для CREATE ROLE.

-?
--help

Показать справку о командной строке для аргументов createuser и выйти.

createuser также принимает следующие аргументы командной строки для параметров подключения:

-h host
--host=host

Определяет имя хоста машины, на которой работает сервер. Если значение начинается с косой черты, оно используется в качестве каталога для Unix-доменного сокета.

-p port
--port=port

Указывает TCP-порт или расширение локального файла сокета Unix, на котором сервер прослушивает соединения.

-U username
--username=username

Имя пользователя для подключения (не имя пользователя для создания).

-w
--no-password

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

-W
--password

Принудительно createuser попросить ввести пароль (для подключения к серверу, а не для пароля нового пользователя).

Эта опция никогда не является обязательной, так как createuser автоматически запросит пароль, если сервер требует аутентификацию по паролю. Однако createuser потратит попытку подключения, чтобы узнать, что сервер требует пароль. В некоторых случаях стоит набрать -W, чтобы избежать дополнительной попытки подключения.

Окружение

PGHOST
PGPORT
PGUSER

Параметры подключения по умолчанию

PG_COLOR

Определяет, следует ли использовать цвет в диагностических сообщениях. Возможные значения: always, auto и never.

Эта утилита, как и большинство других утилит Tantor SE, также использует переменные среды, поддерживаемые libpq (см. Раздел 32.15).

Диагностика

В случае затруднений см. 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, с явно указанными атрибутами, рассмотрим соответствующую команду:

$ createuser -h eden -p 5000 -S -D -R -e joe
CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;

Для создания пользователя joe в качестве суперпользователя и назначения пароля немедленно:

$ 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;

В приведенном выше примере новый пароль на самом деле не отображается при вводе, но мы показываем, что было введено для ясности. Как видите, пароль шифруется перед отправкой клиенту.

См. также

dropuser, CREATE ROLE