PostgreSQL学习手册(客户端命令<一>)(5)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:37 点击:次
新创建的角色不会自动继承它的组角色的权限。
-l(--login) 新角色将被授予登录权限,该选项为缺省选项。
-L(--no-login) 新角色没有被授予登录权限。
-N(--unencrypted) 不对保存在数据库里的用户口令加密。如果没有声明, 则使用缺省值。
-P(--pwprompt) 如果给出该选项,在创建用户时将提示设置口令。
-r(--createrole) 新角色被授予创建数据库的权限。
-R(--no-createrole) 新角色没有被授予创建数据库的权限。
-s(--superuser) 新角色为超级用户。
-S(--no-superuser) 新角色不是超级用户。
-h(--host=host) 指定PostgreSQL服务器的主机名。
-p(--port=port) 指定服务器的监听端口,如不指定,则为缺省的5432。
-U(--username=username) 本次操作的登录用户名。
-w(--no-password) 如果当前登录用户没有密码,可以指定该选项直接登录。
2. 应用示例:
# 对于有些没有缺省设置的选项,如-(d/D)、-(s/S)和-(r/R),如果在命令行中没有直接指定,那么在执行该命令是将会给出提示信息。
# 需要注意的是该提示将会挂起自动化脚本,直到输入后命令才会继续执行。
/> createuser -U postgres myuser
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE myuser NOSUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN;
# 通过psql登录后查看系统视图,以验证该用户是否成功创建,以及新角色的权限是否正确。
/> psql
postgres=# SELECT rolname,rolsuper,rolinherit,rolcreaterole,rolcreatedb,rolcanlogin FROM pg_roles WHERE rolname = 'myuser';
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin
---------+----------+------------+---------------+-------------+-------------
myuser | f | t | f | t | t
(1 row)
# 为了保证自动化脚本不会被该命令的提示挂起,我们需要在执行该命令时指定所有没有缺省值的选项。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>