[pgsql-jp: 30710] Re: DB接続中のユーザー名を見る方法
sugita @ sra.co.jp
sugita @ sra.co.jp
2003年 8月 6日 (水) 23:28:22 JST
杉田です。
From: "Koichi Kokura" <kokimail @ nifty.com>
Subject: [pgsql-jp: 30709] DB接続中のユーザー名を見る方法
Date: Wed, 6 Aug 2003 22:22:37 +0900
;;; 現在Postgresを業務で本格的に使用しようとしております。
;;; その際困った問題が発生しています。
;;; 時々CREATE DATABASEにて新規データベースを作成しよう
;;; とすると、template1が使用中というメッセージが出て
;;; 新規DBを作成できないことがあります。
template1 に接続されているときにはそうなりますが、運用中に CREATE DATABASE
を多用するような使い方をするのはどうしてですか?
;;; 使用中のユーザを見たいのですが、
;;; 特定データベースを使用しているユーザ名を知るコマンドは
;;; ありませんでしょうか?
template1 をテンプレートにして CREATE DATABASE する必要がないならば、template0 を
テンプレートにするという方法もあります。
見る方法は、アクセス統計情報による方法、
stats_command_string = true
=> select * from pg_stat_activity;
datid | datname | procpid | usesysid | usename | current_query
-------+---------+---------+----------+---------+---------------
16976 | sugita | 1419 | 1 | sugita | <IDLE>
(1 row)
=>
コネクションログとエラークエリーのログによる方法、
log_connections = true
log_pid = true
log_timestamp = true
log_min_error_statement = error
2003-08-06 23:25:36 [2218] LOG: connection received: host=[local]
2003-08-06 23:25:36 [2218] LOG: connection authorized: user=sugita database=template1
2003-08-06 23:25:36 [2218] ERROR: CREATE DATABASE: source database "template1" is being accessed by other users
2003-08-06 23:25:36 [2218] LOG: statement: SET autocommit TO 'on';CREATE DATABASE "void"
以上は、PostgreSQL 7.3 での設定です。
Kenji Sugita
pgsql-jp メーリングリストの案内