createuser#

createuser

createuser

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

Синтаксис

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

Описание

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

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

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

Опции

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

username

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

-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 (deprecated)

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

-i
--inherit

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

-I
--no-inherit

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

--interactive

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

-l
--login

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

-L
--no-login

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

-m role
--with-member=role

Указывает существующую роль, которая будет автоматически добавлена в качестве участника новой роли. Несколько существующих ролей могут быть указаны путем написания нескольких переключателей -m.

-P
--pwprompt

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

-r
--createrole

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

-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 и выйти.

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 BE, также использует переменные среды, поддерживаемые libpq (см. Раздел 31.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;

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