createuser
createuser¶
创建一个新的数据库角色。
- 语法
-
``` bash createuser [connection-option …] [role_attribute …] [-e] role_name
createuser -? | –help
createuser -V | –version ```
- 描述
-
createuser
创建一个新的SeaboxMPP数据库角色。 必须是超级用户或具有CREATEROLE
权限才能创建新角色。必须以超级用户身份连接到数据库才能创建新的超级用户。超级用户可以绕过数据库中的所有访问权限检查,因此不应轻易授予超级用户特权。
createuser
是SQL命令CREATE ROLE
的封装。 - 选项
-
该命令参数说明见下
- role_name
- 要创建的角色的名称。 此名称必须不同于该SeaboxMPP数据库安装中的所有现有角色。
- -c
number
| –connection-limit=number
- 设置新角色的最大连接数。默认设置为无限制。
- -d | –createdb
- 新角色将被允许创建数据库。
- -D | –no-createdb
- 不允许新角色创建数据库。这是默认值。
- -e | –echo
- 回显
createuser
生成并发送到服务器的命令。 - -E | –encrypted
- 加密存储在数据库中的角色密码。 如果未指定,则使用默认密码行为。
- -i | –inherit
- 新角色将自动继承其成员角色的特权。这是默认值。
- -I | –no-inherit
- 新角色将不会自动继承其成员角色的特权。
- --interactive
- 如果在命令行上未指定用户名,则提示输入用户名, 并提示在命令行中未指定选项
-d
/-D
,-r
/-R
,-s
/-S
中的任何一个。 - -l | –login
- 新角色将被允许登录SeaboxMPP数据库。这是默认值。
- -L | –no-login
- 新角色将不允许登录(组级别角色)。
- -N | –unencrypted
- 不加密存储在数据库中的角色密码。如果未指定,则使用默认密码行为。
- -P | –pwprompt
- 如果提供,则
createuser
将提示输入新角色的密码。 如果您不打算使用密码身份验证,则没有必要。 - -r | –createrole
- 新角色将被允许创建新角色(
CREATEROLE
特权)。 - -R | –no-createrole
- 新角色将不允许创建新角色。这是默认值。
- -s | –superuser
- 新角色将是超级用户。
- -S | –no-superuser
- 新角色将不是超级用户。这是默认值。
- -V | –version
- 打印
createuser
版本并退出。 - --replication
- 新用户将具有
REPLICATION
特权,有关CREATE ROLE的文档中对此进行了更详细的描述。 - --no-replication
- 新用户将没有
REPLICATION
特权,有关CREATE ROLE的文档中对此进行了更详细的描述。 - -? | –help
- 显示有关
createuser
命令行参数的帮助,然后退出。
以下选项均为连接选项,即连接SeaboxMPP数据库的相关信息:
- -h
host
| --host=host
- 运行SeaboxMPP coordinator数据库服务器的计算机的主机名。如果未指定,则从环境变量
SDHOST
读取或默认为localhost。 - -p
port
| --port=port
- SeaboxMPP coordinator数据库服务器正在侦听连接的TCP端口。 如果未指定,则从环境变量
SDPORT
读取或默认为3000。 - -U
username
| –username=username
- 要用作连接的数据库角色名称。 如果未指定,则从环境变量
SDUSER
读取或默认为当前系统角色名称。 - -w | --no-password
- 不发出密码提示。 如果服务器要求密码验证,而其他方式(例如
.sdpass
文件)无法使用密码,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。 - -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 CREATE ROLE
要使用连接选项来创建相同的角色
joe
,并显式指定属性,然后查看基本命令:createuser -h coordinatorhost -p 54321 -S -D -R -e joe CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; CREATE ROLE
要将角色
joe
创建为超级用户,并立即分配密码admin123
:createuser -P -s -e joe Enter password for new role: admin123 Enter it again: admin123 CREATE ROLE joe PASSWORD 'admin123' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; CREATE ROLE
在上面的示例中,键入时实际上并未回显新密码,但是为了清楚起见,我们显示了键入的内容。但是,密码将显示在echoed命令中,如使用
-e
选项所示。 - 相关命令
CREATE ROLE
,dropuser