destroyuser

Name

destroyuser  --  Postgres ユーザと関連のデータベース を削除します。

Synopsis

destroyuser [ username ]
destroyuser [ -h host ] [ -p port ]
    [ username ]
  

入力

-h host

postmaster が動いているマシン のホスト名を指定します。デフォルトは IP 接続ではなく、 ローカル Unix ドメインソケットを使用します。

-p port

接続を postmaster が監視する インターネット TCP/IP ポート、またはローカル Unix ドメイン ソケットファイル拡張子を指定します。 デフォルトのポート番号は 5432 または、環境変数(もし設定 していれば)による番号です。

username

削除するユーザの名前を指定します。名前はこのインストレーションの 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" does not exist

削除の対象となるユーザは pg_shadow クラスに登録されていません。

database access failed

psql またはバックエンドサーバで 内部エラーが起こりました。サイト管理者が適切に Postgres をインストールし、その サイトを initdb で初期化したか どうか確認して下さい。

destroydb on dbname failed - exiting

psql またはバックエンドサーバで 内部エラーが起こりました。多分、指定されたデータベースに 対する Unix の権限の問題です。

delete of user username was UNSUCCESSFUL

psql またはバックエンドサーバで 内部エラーが起こりました。

Note: destroyuser の内部では、 template1 データベースに接続して、 psql から DROP USER を実行します。

説明

destroyuser は既存の Postgres ユーザとそのユーザ がデータベース管理者であったデータベースを削除します。 pg_shadow クラスに usesuper セットを所有しているユーザ のみが Postgres のユーザを 削除できます。 ユーザ postgres はユーザを削除できる ようになっています。

destroyuserpsql を呼び出すシェルスクリプト です。したがい、postmaster プロセスは destroyuser が実行される 以前に、データベースサーバホストで稼働していなければなりません。 PGOPTIONPGREALM 環境変数は psql に渡され、 psql に記載され ているように処理されます。

一度呼び出されると、destroyuser は プロセスの中の削除されるデータベースについて警告を出します。 望むのであれば、ユーザの削除を中止することができます。