destroyuser
destroyuser — 销毁一个 Postgres 用户及其关联的数据库
大纲
destroyuser [username] destroyuser [ -hhost] [ -pport] [username]
输入
- -h
host 指定 postmaster 正在运行的机器的主机名。默认使用本地 Unix 域套接字而不是 IP 连接。
- -p
port 指定 postmaster 正在监听连接的 Internet TCP/IP 端口或本地 Unix 域套接字文件扩展。端口号默认为 5432,或
PGPORT环境变量的值(如果设置了)。username指定要移除的 Postgres 用户的名称。该名称必须存在于 Postgres 安装中。如果命令行上没有指定名称,将会提示你输入一个。
输出
destroyuser 将移除
pg_user 或
pg_shadow 系统表中的一个项,并且将移除该用户作为管理员(DBA)的所有数据库。
Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'? destroyuser: database access failed.destroyuser 无法连接到指定主机和端口上的 postmaster 进程。如果你看到这条消息,请确保 postmaster 正在正确的主机上运行,并且你指定了正确的端口。如果你的站点使用认证系统,请确保你已经获得了所需的认证凭据。
Connection to database 'template1' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow' destroyuser: database access failed.你在关系
pg_shadow中没有有效的项,因而不允许访问 Postgres。请联系你的 Postgres 管理员。destroyuser:usernamecannot delete users.你没有删除用户的权限;请联系你的 Postgres 站点管理员。
destroyuser: user "username" already exists要添加的用户已经在
pg_shadow类中有一个项。database access failedpsql 或后端服务器中发生了内部错误。请确保你的站点管理员已经正确安装 Postgres并已用 initdb 初始化了站点。
destroydb ondbnamefailed - exitingpsql 或后端服务器中发生了内部错误。所指定的数据库可能存在 Unix 权限问题。
delete of userusernamewas UNSUCCESSFULpsql 或后端服务器中发生了内部错误。
注意
destroyuser 内部在连接到
template1 数据库的
psql 中运行
DROP USER。
描述
destroyuser 移除一个现有的
Postgres
用户以及该用户作为数据库管理员的数据库。只有在
pg_shadow 类中设置了
usesuper 的用户才能销毁
Postgres 用户。按发行时的状态,用户 postgres 可以移除用户。
destroyuser 是一个调用
psql 的
shell 脚本。因此,在执行
destroyuser 之前,数据库服务器主机上必须有一个
postmaster
进程在运行。PGOPTION
和
PGREALM
环境变量将被传递给
psql,并按 psql
中的描述处理。
一旦被调用,destroyuser 会警告你哪些数据库将在过程中被销毁,并允许你在需要时中止对该用户的移除。