createuser

createuser - определить новую учетную запись пользователя QHB

Синтаксис

createuser [connection-option...] [option...] [ROLENAME]

Описание

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

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

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

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

Параметры

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

FLAGS:

АргументОписание
-?, --helpПоказать справку об аргументах командной строки и выйти
-V, --versionРаспечатать версию createuser и выйти
-e, --echoВыводит на экран команды, которые createuser генерирует и отправляет на сервер.

CONNECTION OPTIONS:

АргументОписание
-h, --host=HOSTNAMEУказывает имя хоста компьютера, на котором работает сервер. Если значение начинается с косой черты, оно используется в качестве каталога для сокета домена Unix.
-p, --port=PORTУказывает порт TCP или расширение файла локального сокета домена Unix, на котором сервер прослушивает соединения.
-U, --username=USERNAMEИмя пользователя для подключения (не имя пользователя роли которое будет создано)
-w, --no-passwordНе запрашивать ввод пароля. Если серверу требуется аутентификация по паролю, а пароль недоступен другими способами, такими как файл .pgpass, попытка подключения завершится неудачно. Эта опция может быть полезна в пакетных заданиях и сценариях, где нет ни одного пользователя для ввода пароля.
-W, --passwordЭта опция не является существенной, так как createuser автоматически запросит пароль, если сервер требует аутентификацию по паролю. Тем не менее, createuser будет тратить попытки подключения, для аутентификации. В некоторых случаях стоит ввести -W чтобы избежать дополнительной попытки подключения.

OPTIONS:

АргументОписание
-c, --connection-limit=NУстанавливает максимальное количество подключений для нового пользователя. По умолчанию установлено без ограничений.
-d, --createdbНовому пользователю будет разрешено создавать базы данных.
-D, --no-createdbНовому пользователю не будет разрешено создавать базы данных. Это поведение используется по умолчанию.
-g, --role=ROLEУказывает роль, к которой эта роль будет немедленно добавлена в качестве нового участника. Несколько ролей, можно указать, указав несколько ключей -g .
-i, --inheritНовая роль автоматически наследует привилегии ролей, членом которых она является. Это поведение используется по умолчанию.
-I, --no-inheritНовая роль не будет автоматически наследовать привилегии ролей, членом которых она является.
-l, --loginНовому пользователю будет разрешено войти в систему (то есть имя пользователя может использоваться в качестве начального идентификатора пользователя сеанса). Это по умолчанию.
-L, --no-loginНовому пользователю не будет разрешено войти в систему. (Роль без привилегий входа по-прежнему полезна в качестве средства управления разрешениями базы данных.)
-P, --pwpromptЕсли указано, createuser выдаст запрос на ввод пароля нового пользователя. В этом нет необходимости, если вы не планируете использовать аутентификацию по паролю.
-r, --createroleНовому пользователю будет разрешено создавать новые роли (то есть этот пользователь будет иметь привилегию CREATEROLE
-R, --no-createroleНовый пользователь не сможет создавать новые роли. Это поведение используется по умолчанию.
-s, --superuserНовый пользователь будет суперпользователем.
-S, --no-superuserНовый пользователь не будет суперпользователем. Это поведение используется по умолчанию.
--interactiveЗапрашивать имя пользователя, если оно не указано в командной строке, а также запрашивать, параметров -d / -D, -r / -R, -s / -S если не указаны в командной строке.
--replicationНовый пользователь будет иметь привилегию REPLICATION, которая более подробно описана в документации по CREATE ROLE.
--no-replicationУ нового пользователя не будет привилегии REPLICATION.

ARGS:

АргументОписание
ROLENAMEОпределяет имя пользователя QHB, который будет создан. Это имя должно отличаться от всех существующих ролей в этой установке QHB.

Окружение

PGHOST

PGPORT

PGUSER

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

PG_COLOR

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

Диагностика

В случае затруднений см. CREATE ROLE и qsql для ознакомления потенциальных проблем и сообщений об ошибках. Сервер базы данных должен работать на целевом хосте. Кроме того, будут применяться любые параметры подключения по умолчанию и переменные среды.

Примеры

Создание пользователя 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, ROLE ATTRIBUTES