dropuser

Name

dropuser — 删除一个 Postgres 用户

dropuser [options...] [username]

输入

-h, --host host

声明运行 postmaster 的机器的主机名. 如果主机名以斜扛开头,则它被用做到 Unix 域套接字的路径.

-p, --port port

声明 postmaster 正在侦听的互联网 TCP/IP 端口号或本地Unix域套接字的文件扩展(描述符).

-e, --echo

回现 createdb 生成的查询并发送给后端。

-q, --quiet

不显示响应。

-i, --interactive

在真正删除用户前前提示。

username

声明要删除的 Postgres 用户名. 该名字必须存在于 Postgres 节点. 如果你没有在命令行上声明,将会被提示输入一个。

选项-h-p, 和 -e逐字传递给 psqlpsql 选项 -U-W 也可以使用,但是这些开关的使用在这个环境中可能有些混乱。

输出

DROP USER

一切正常。

dropuser: deletion of user "username" failed

出了差错,用户没有删除。

如果出现错误,将会显示后端错误信息。参阅 DROP USERpsql获取可能信息描述。

描述

dropuser 删除一个现有 Postgres 用户 该用户所有的数据库。 只有在 pg_shadow 表里面拥有 usesuper 集的用户可以创建新的 Postgres 用户。

dropuser 是一个 shell 脚本,通过 Postgres 交互终端 psql封装了 SQL 命令 DROP USER 。 因此,用那种方法删除用户都没什么特别的。这意味着 psql 必须能被脚本找到并且有一个数据库服务器在目标主机上运行。同样,任何 psqllibpq 前端库可获得的缺省设置和环境变量都将生效。

用法

删除缺省数据库服务器上的用户 joe

$ dropuser joe
DROP USER

用在主机 eden 上的 postmaster 删除用户joe, 端口是 5000,执行命令前提示并且显示执行的查询:

$ dropuser -p 5000 -h eden -i -e joe
User "joe" and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER "joe"
DROP USER