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选项,口令将会在回显的命令中显示出来。