dポイントプレゼントキャンペーン実施中!

初めましてお世話になります

目的は接続ユーザが自分の参照できるテーブルのみを
select文で抽出することです。

環境はpowergresの試作をつかっているので
postges的に7.3.2に近いものになっていると思います。

私が試したのは以下になります。

pg_classに存在するrelaclについてなんですが
relaclには構造型で誰がどの権限がついているかが解るので
relaclの値を参照して、現ユーザをselect文で取得し
その結果がどのテーブルを参照可能かselect文で
調べようとしたのですが、relaclがaclitemという
型でcast等をして文字列にと思いましたが、cast出来ませんでした
故に比較することに失敗しました。

select distinct pg_class.relname as table_name
from pg_class
where pg_class.relac = session_user
でテーブルを取得するようなイメージで考えているのですが・・・

何か方法をお知りの方がいらっしゃいましたらよろしくお願いします。

A 回答 (1件)

pg_tablesは使えませんか?



select tablename from pg_tables WHERE session_user = tableowner

(tableownerだから「参照可能」とはちょっと違いますが)

この回答への補足

お返事有難うございます。

>tableownerだから「参照可能」とはちょっと違いますが
ログインしたユーザが作った=参照可能なので
このSelectでテーブルが抽出されるのですが、
このSelectだけだと、参照権限のついたテーブルを抽出
することが出来ません。

私のほうで今回ほしい抽出データは、
参照権限のついたテーブルも必要になります。

お手数おかけします。

補足日時:2004/05/17 16:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!