• 締切済み

postgresテーブルの抽出について

初めましてお世話になります 目的は接続ユーザが自分の参照できるテーブルのみを 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 でテーブルを取得するようなイメージで考えているのですが・・・ 何か方法をお知りの方がいらっしゃいましたらよろしくお願いします。

みんなの回答

  • zebedeer
  • ベストアンサー率66% (80/121)
回答No.1

pg_tablesは使えませんか? select tablename from pg_tables WHERE session_user = tableowner (tableownerだから「参照可能」とはちょっと違いますが)

fukyu
質問者

補足

お返事有難うございます。 >tableownerだから「参照可能」とはちょっと違いますが ログインしたユーザが作った=参照可能なので このSelectでテーブルが抽出されるのですが、 このSelectだけだと、参照権限のついたテーブルを抽出 することが出来ません。 私のほうで今回ほしい抽出データは、 参照権限のついたテーブルも必要になります。 お手数おかけします。

関連するQ&A