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=
(deprecated)role
Указывает, что новая роль должна быть автоматически добавлена в качестве участника указанной существующей роли. Несколько существующих ролей могут быть указаны путем написания нескольких переключателей
-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;
В приведенном выше примере новый пароль на самом деле не отображается при вводе, но мы показываем, что было введено для ясности. Как видите, пароль шифруется перед отправкой клиенту.