↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 6.5 / 6.4
历史版本PostgreSQL 6.4 已于 2003 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

destroyuser

destroyuser — 销毁一个 Postgres 用户及其关联的数据库

大纲

destroyuser [ username ]
destroyuser [ -h host ] [ -p port ]
    [ 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: username cannot delete users.

你没有删除用户的权限;请联系你的 Postgres 站点管理员。

destroyuser: user "username" already exists

要添加的用户已经在 pg_shadow 类中有一个项。

database access failed

psql 或后端服务器中发生了内部错误。请确保你的站点管理员已经正确安装 Postgres并已用 initdb 初始化了站点。

destroydb on dbname failed - exiting

psql 或后端服务器中发生了内部错误。所指定的数据库可能存在 Unix 权限问题。

delete of user username was UNSUCCESSFUL

psql 或后端服务器中发生了内部错误。

注意

destroyuser 内部从 psql 运行 DROP USER,同时连接到 template1 数据库。

描述

destroyuser 移除一个现有的 Postgres 用户 以及该用户作为数据库管理员的 数据库。 只有在 pg_shadow 类中设置了 usesuper 的用户才能销毁 Postgres 用户。按发行时的状态, 用户 postgres 可以移除用户。

destroyuser 是一个调用 psql 的 shell 脚本。因此,在执行 destroyuser 之前,数据库服务器主机上必须有一个 postmaster 进程在运行。 PGOPTION 和 PGREALM 环境变量将被传递给 psql, 并按 psql 中的描述处理。

一旦被调用,destroyuser 会警告你哪些数据库将在 过程中被销毁,并允许你在需要时中止对该用户的移除。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。