Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux createuser 命令。

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

推荐文档