createuser
Создает новую роль.
Синтаксис
createuser [ <connection-option> ... ]
[ <role_attribute> ... ]
[ -e ]
<role_name>
createuser -? | --help
createuser -V | --version
Описание
createuser создает новую роль в Greengage DB.
Для создания новых ролей необходимо быть суперпользователем или обладать привилегией CREATEROLE.
Чтобы создавать суперпользователей, подключение к базе данных должно выполняться от имени суперпользователя.
Суперпользователи могут обходить все проверки прав доступа, поэтому их привилегии следует предоставлять с осторожностью.
createuser является оберткой для SQL-команды CREATE ROLE.
Параметры
- <role_name>
-
Имя создаваемой роли. Имя должно быть уникальным среди всех существующих ролей в кластере Greengage DB.
- -c <number> | --connection-limit=<number>
-
Устанавливает максимальное количество подключений для новой роли. По умолчанию лимит не задан.
- -d | --createdb
-
Разрешает новой роли создавать базы данных.
- -D | --no-createdb
-
Запрещает новой роли создавать базы данных. Это значение по умолчанию.
- -e | --echo
-
Выводит команды, которые
createuserформирует и отправляет на сервер. - -E | --encrypted
-
Указывает, что пароль роли, сохраняемый в базе данных, должен быть зашифрован. Если параметр не указан, используется стандартное поведение обработки паролей.
- -g <role> | --role=<role>
-
Указывает, что новая роль является членом указанной роли. Эту опцию можно указать несколько раз, чтобы добавить новую роль в несколько родительских ролей одновременно.
- -i | --inherit
-
Новая роль автоматически наследует привилегии ролей, членом которых она является. Это значение по умолчанию.
- -I | --no-inherit
-
Новая роль не наследует привилегии ролей, членом которых она является.
- --interactive
-
Запрашивает имя пользователя, если оно не указано в командной строке, а также параметры
-d/-D,-r/-R,-s/-S, которые не указаны явно. - -l | --login
-
Разрешает новой роли вход в систему. Это значение по умолчанию.
- -L | --no-login
-
Запрещает новой роли вход в систему (групповая роль).
- -N | --unencrypted
-
Указывает, что пароль роли в базе данных не шифруется. Если параметр не указан, используется стандартное поведение для паролей.
- -P | --pwprompt
-
Запрашивает пароль для новой роли. Необязательно, если роль не будет использовать аутентификацию по паролю.
- -r | --createrole
-
Разрешает новой роли создавать другие роли (привилегия
CREATEROLE). - -R | --no-createrole
-
Запрещает новой роли создавать другие роли. Это значение по умолчанию.
- -s | --superuser
-
Делает новую роль суперпользователем.
- -S | --no-superuser
-
Делает новую роль обычной (не суперпользователем). Это значение по умолчанию.
- -V | --version
-
Выводит версию
createuserи завершает работу. - --replication
-
Предоставляет новой роли привилегию
REPLICATION. - --no-replication
-
Не предоставляет новой роли привилегию
REPLICATION. Это значение по умолчанию. - -? | --help
-
Показывает справку по аргументам командной строки
createuserи завершает работу.
Параметры подключения
- -h <host> | --host=<host>
-
Имя хоста, на котором запущен экземпляр мастера. Если параметр не указан, читается из переменной окружения
PGHOSTили используется значение по умолчаниюlocalhost. - -p <port> | --port=<port>
-
TCP-порт, на котором мастер принимает подключения. Если параметр не указан, читается из переменной окружения
PGPORTили используется значение по умолчанию5432. - -U <username> | --username=<username>
-
Имя роли для подключения. Если параметр не указан, читается из переменной окружения
PGUSERили используется имя пользователя операционной системы. - -w | --no-password
-
Не запрашивает пароль. Если сервер требует пароль и он недоступен другими способами (например, через файл .pgpass), подключение завершится неудачей. Этот параметр удобен для пакетных заданий и скриптов, где невозможен интерактивный ввод пароля.
- -W | --password
-
Принудительно запрашивает пароль.
Примеры
-
Создать роль
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, используя параметры подключения и явно указав атрибуты:$ createuser -h mdw -p 54321 -S -D -R -e joeРезультат:
CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; CREATE ROLE
-
Создать роль
joeкак суперпользователя:$ createuser -P -s -e joeНазначить пароль
admin123:Enter password for new role: admin123 Enter it again: admin123Результат:
CREATE ROLE joe PASSWORD 'admin123' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; CREATE ROLE
В примере выше вводимый пароль фактически не отображается в выводе, но здесь он показан для наглядности. Однако пароль будет виден в выведенной команде при использовании параметра -e.