Table 4-25. セッション情報関数
名前 | 返り値型 | 説明 |
---|---|---|
current_user | name (名前) | 現在文脈を実行しているユーザー名 |
session_user | name (名前) | セッションユーザー名 |
user | name (名前) | current_user に同じ |
session_user とはデータベース接続を開始したユーザーのことで、その接続が持続している間は固定されています。 current_user とは権限のチェックに使われるユーザー識別子です。現在のところ常にセッションユーザーと同じですが、将来的にはカレントユーザーを暫定的に他のユーザに変更することを許す "setuid" 関数や別の処理用の利器がでてくるかも知れません。Unix 特有な語法によると、セッションユーザーは "実ユーザー"で、カレントユーザーは "有効ユーザー"となっています。
これら関数は SQL で特殊な構文上の資格を所有していることに注意してください。後ろに丸括弧を付けずに呼ばれる必要があります。
削除された項目: current_user 関数と同等のgetpgusername() 関数は使われません。
version() 関数は PostgreSQL のバージョンを記述した文字列を返します。
Table 4-27. アクセス権限照会関数
名前 | 返り値型 | 説明 |
---|---|---|
has_table_privilege(user, table, access) | boolean (論理値) | テーブルにユーザーのアクセス権限があるのか |
has_table_privilege(table, access) | boolean (論理値) | テーブルにカレントユーザーのアクセス権限があるのか |
has_table_privilege 関数はあるユーザーが特定の方法でテーブルにアクセス可能かどうかを決定するものです。ユーザーは名前または ID (pg_user.usesysid) によって特定されます。もし引数が省略されると current_user と見倣されます。(従って、実際 has_table_privilege には 6 種類の転化が存在し、それぞれの引数の数値と型によって見分けられます。)望ましいアクセス型はテキスト文字列で指定され、SELECT、 INSERT、UPDATE、DELETE、 RULE、REFERENCES、または TRIGGER の内の一つの値によって評価去れなければなりません。(文字列の大文字小文字の種類は重要でありませんが。)
Table 4-28. カタログ情報関数
名前 | 返り値型 | 説明 |
---|---|---|
pg_get_viewdef(viewname) | text (テキスト) | ビュー用 REATE VIEW コマンドの取得 |
pg_get_ruledef(rulename) | text (テキスト) | ルール用 CREATE RULE コマンドの取得 |
pg_get_indexdef(indexOID) | text (テキスト) | インデックス用 CREATE INDEX コマンドの取得 |
pg_get_userbyid(userid) | name (名前) | 与えられた ID によるユーザー名を取得 |
これらの関数はシステムカタログから情報を抽出します。 pg_get_viewdef()、pg_get_ruledef()、および pg_get_indexdef() 関数はそれぞれ、ビュー、ルール、あるいはインデックスに対するコマンド作成を再構築します。(これは逆コンパイルによる再構築であって、コマンドを逐語的に並べたテキストでないことに注意してください。) pg_get_userbyid() 関数は与えられた usesysid の値からユーザー名を抽出します。
Table 4-29. コメント情報関数
名前 | 返り値型 | 説明 |
---|---|---|
obj_description(objectOID, tablename) | text (テキスト) | データベースオブジェクトのコメントを取得 |
obj_description(objectOID) | text (テキスト) | データベースオブジェクトのコメントを取得 (削除) |
col_description(tableOID, columnnumber) | text (テキスト) | テーブルの列のコメントを取得 |
これらの関数は COMMENT コマンドによって以前に保存されたコメントを抽出します。
obj_description() 関数の 2 パラメータ形式はその OID で指定されたデータベースオブジェクトのコメントと保有しているシステムカタログの名前を返します。例えば、 obj_description(123456,'pg_class') は OID 123456 を持つテーブルのコメントを抽出します。 obj_description() 関数の単一パラメータ形式はオブジェクトの OID のみ必要とします。異なったシステムカタログに渡って OID が一意である保証は無いことから現在は使われません。ですから、間違ったコメントが返ることがあります。
col_description() 関数はテーブルの列のコメントを返し、それはそのテーブルの OID とその列番号で指定されているものです。 obj_description() 関数はテーブル列は独自の OID を所有していないのでテーブル列に対して使用することはできません。