PostgreSQL学习手册(客户端命令<一>)(三)

2015-01-25 20:58:59 · 作者: · 浏览: 10
per,rolinherit,rolcreaterole,rolcreatedb,rolcanlogin FROM pg_roles WHERE rolname = 'myuser';
? ? ?rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin
? ? ---------+----------+------------+---------------+-------------+-------------
? ? ?myuser ?| f ? ? ? ? ? | t ? ? ? ? ? ? | f ? ? ? ? ? ? ? ? ?| t ? ? ? ? ? ? ? ? | t
? ? (1 row)
? ? # 为了保证自动化脚本不会被该命令的提示挂起,我们需要在执行该命令时指定所有没有缺省值的选项。
? ? /> createuser -U postgres -e -S -D -R myuser2
? ? CREATE ROLE myuser2 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
? ? # 我们可以在创建用户时即刻指定该用户的密码,该操作由-P选项完成,然而这样的用法一定会挂起自动化脚本,
? ? # 因此我们可以采用一种折中的办法,即在创建用户时不指定密码,在自动化脚本执行成功后再手工该用户的密码。
? ? /> createuser -P -s -e myuser3
? ? Enter password for new role:
? ? Enter it again:
? ? CREATE ROLE myuser3 PASSWORD 'md5fe54c4f3129f2a766f53e4f4c9d2a698' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
?
六、dropuser:
?
? ? 删除一个PostgreSQL用户帐户,需要说明的是只有超级用户或带有CREATEROLE权限的用户可以执行该命令,如果要删除超级用户,只能通过超级用户的身份执行该命令。该命令的使用方式如下:
? ? dropuser [option...] [username]
? ? 1. 命令行选项列表: ?www.2cto.com ?
选项 说明
-e(--echo) 回显dropuser生成的命令并且把它发送到服务器。
-i(--interactive) 在做任何破坏性动作前提示。
-h(--host=host) 指定PostgreSQL服务器的主机名。
-p(--port=port) 指定服务器的监听端口,如不指定,则为缺省的5432。
-U(--username=username) 本次操作的登录用户名。
-w(--no-password) 如果当前登录用户没有密码,可以指定该选项直接登录。
? ? 2. 应用示例:
? ? # 直接删除指定用户。
? ? /> dropuser -e myuser3
? ? DROP ROLE myuser3;
? ? # 在删除指定用户时,该命令会给出提示信息,以免误操作。
? ? /> dropuser -e -i myuser2
? ? Role "myuser2" will be permanently removed.
? ? Are you sure? (y/n) y
? ? DROP ROLE myuser2;
?
?
?
作者 Stephen_Liu