1、命令简介
createuser:定义一个新的PostgreSQL用户帐户。
2、命令用法
createuser [ option... ] [ username ]
3、命令描述
createuser
创建一个新的PostgreSQL用户(或者更准确地说是一个角色)。只有超级用户和具有CREATEROLE
权限的用户才能创建新用户,因此createuser
必须由能够作为超级用户或具有CREATEROLE
权限的用户进行连接的人调用。
如果需要创建一个新的超级用户,则必须以超级用户的身份连接,而不仅仅是使用CREATEROLE
特权。作为一个超级用户意味着能够绕过数据库中的所有访问权限检查,所以超级用户名不应该轻易被授予。
createuser
是SQL命令CREATE ROLE [create_role(7)]的包装器。通过此实用工具创建用户与通过其他方法访问服务器之间没有实际区别。
4、命令选项
选项 | 描述 |
username | 需要创建的PostgreSQL用户名。 该名称必须与PostgreSQL安装中所有现有的角色不同。 |
-s --superuser | 将新用户设置为超级用户。 |
-S --no-superuser | 新用户将不是超级用户,默认值。 |
-d --createdb | 新用户将被允许创建数据库。 |
-D --no-createdb | 新用户将不允许创建数据库,默认值。 |
-r --createrole | 新用户将被允许创建新的角色(也就是说, 该用户将拥有CREATEROLE特权)。 新用户将被允许创建新的角色(也就是说, 该用户将拥有CREATEROLE特权)。 |
-R --no-createrole | 新用户不允许创建新角色,默认值。 |
-l --login | 将允许新用户登录(也就是说, 用户名可以用作初始会话用户标识符),默认值。 |
-L --no-login | 新用户将不允许登录。 (没有登录权限的角色在管理数据库权限时仍然很有用。) |
-i --inherit | 新角色将自动继承其所属角色的特权,默认值。 |
-I --no-inherit | 新角色不会自动继承其所属角色的特权。 |
-c number --connection-limit number-c number --connection-limit number | 为新用户设置最大连接数。默认是不设置限制。 |
-P --pwprompt | 如果指定,createuser将发出提示输入新用户的密码。 如果不打算使用密码身份验证, 则没有必要指定。 |
-E --encrypted | 加密存储在数据库中的用户密码。 如果不指定,则使用默认的密码行为。 |
-N --unencrypted | 不加密存储在数据库中的用户密码。 如果不指定,则使用默认的密码行为。 |
-e --echo | 显示以下命令createuser 生成并发送给服务器。 |
-q --quiet | 不要显示响应。不要显示响应。 |
如果没有在命令行上指定名称和其他缺少的信息,则会提示输入名称和其他信息。 如果没有在命令行上指定名称和其他缺少的信息,则会提示输入名称和其他信息。 | |
createuser 也接受以下命令行参数作为连接参数: | |
-h host --host host | 指定运行服务器的机器的主机名。 如果该值以斜杠开头, 它将被用作Unix域套接字的目录。 |
-p port --port port | 指定服务器监听连接的TCP端口 或本地Unix域套接字文件扩展名。 |
-U username --username username | 要连接的用户名(不是要创建的用户名)。 |
-W --password | 强制密码提示(连接到服务器, 而不是新用户的密码)。 |
5、环境变量
变量名 | 描述 |
PGDATABASE PGHOST PGPORT PGUSER | 默认连接参数 |
6、使用示例
1)在默认数据库服务器上创建一个用户dbuser
$ createuser dbuser 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 USER
2)要在主机kvm上使用服务器创建同一个用户dbuser,端口5000,避免提示并查看底层的命令
$ createuser -h kvm -p 5000 -S -D -R -e dbuser
CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
CREATE ROLE
3)将用户dbuser创建为超级用户,并立即分配密码
$ createuser -P -s -e dbuser Enter password for new role: cjavapy Enter it again: cjavapy CREATE ROLE dbuser PASSWORD ’cjavapy’ SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; CREATE ROLE