createuser

创建一个新数据库角色。

概要

  1. createuser [connection_option ...] [role_attribute ...] [-e] role_name
  2. createuser --help
  3. 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的角色:

  1. createuser joe
  2. Shall the new role be a superuser? (y/n) n
  3. Shall the new role be allowed to create databases? (y/n) n
  4. Shall the new role be allowed to create more new roles? (y/n) n
  5. CREATE ROLE

要使用连接选项创建同一个角色joe并且避免提示,还想看一看底层的命令:

  1. createuser -h masterhost -p 54321 -S -D -R -e joe
  2. CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT
  3. LOGIN;
  4. CREATE ROLE

要把角色joe创建为超级用户,并且立刻赋予口令admin123:

  1. createuser -P -s -e joe
  2. Enter password for new role: admin123
  3. Enter it again: admin123
  4. CREATE ROLE joe PASSWORD 'admin123' SUPERUSER CREATEDB
  5. CREATEROLE INHERIT LOGIN;
  6. CREATE ROLE

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

另见

CREATE ROLE