createuser

createuser

创建一个新数据库角色。

概要

createuser [connection_option ...] [role_attribute ...] [-e] role_name

createuser --help 

createuser --version

描述

createuser创建一个新的Greenplum数据库的角色。用户必须是一个超级用户或者有CREATEROLE特权才能创建新角色。用户必须作为超级用户连接到数据库以创建新的超级用户。

超级用户可以绕过数据库中所有访问权限检查,因此不应轻率地授予超级用户特权。

createuser是SQL命令CREATE ROLE的包装程序。

选项

role_name
要被创建的角色名。这个名称必须与这个Greenplum数据库安装中所有现有角色不同。
-c number | --connection-limit number
为新角色设置最大连接数。默认设置为不限制。
-D | --no-createdb
新角色将不被允许创建数据库。这是默认情况。
-d | --createdb
新角色将被还允许创建数据库。
-e | --echo
回显createuser生成并且发送给服务器的命令。
-E | --encrypted
加密角色存储在数据库中的口令。如果没有指定,会使用默认的口令行为。
-i | --inherit
新角色将自动继承它是其成员的角色的特权。这是默认情况。
-I | --no-inherit
新角色将不会自动继承它是其成员的角色的特权。
-l | --login
新角色将被允许登入到Greenplum数据库。这是默认情况。
-L | --no-login
新角色将不被允许登入(组级角色)。
-N | --unencrypted
不要加密角色存储在数据库中的口令。如果没有指定,会使用默认的口令行为。
-P | --pwprompt
如果给定,createuser将发出一个提示要求新角色的口令。如果用户不打算使用口令认证,这不是必要的。
-r | --createrole
新角色将被允许创建新角色(CREATEROLE特权)。
-R | --no-createrole
新角色将不被允许创建新角色。这是默认情况。
-s | --superuser
新角色将是超级用户。
-S | --no-superuser
新角色将不是超级用户。这是默认情况。
连接选项
-h host | --host host
指定Greenplum的Master数据库服务器在其上运行的机器的主机名。如果没有指定,会从环境变量PGHOST读取或者默认为localhost。
-p port | --port port
指定Greenplum的Master数据库服务器在其上监听连接的TCP端口。如果没有指定,会从环境变量PGPORT读取或者默认为5432。
-U username | --username username
要用其进行连接的数据库角色名。如果没有指定,会从环境变量PGUSER读取或者默认为当前系统用户名。
-w | --no-password
从不发出口令提示。如果服务器要求口令认证并且不能通过其他方式(例如.pgpass文件)提供口令,则连接尝试将会失败。这个选项对于批作业和脚本很有用,因为这些情况下不会有用户输入口令。
-W | --password
强制口令提示。

示例

使用默认选项创建一个名为joe的角色:

createuser 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 masterhost -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

在上面的例子中,输入新口令时实际上不会回显,我们这里为了表述清晰而把口令显示出来。不如果使用-e选项,口令将会在回显的命令中显示出来。

另见

CREATE ROLE