[pgsql-jp: 40239] Re: PL/pgSQLのソースコードを見せたくない

恒住 武男 tsunezumi @ efficlabo.com
2010年 3月 24日 (水) 16:18:32 JST


返信有難うございます。



> ・「暗号化したスクリプトを実行する PL」を自作する。
>   PL/pgSQL をコピペして改変すれば、改造量自体は多くは無いとは思います。

私のイメージとしてはこの案の方です。
ソースをダウンロードしてみましたが、
気の長い話になりそうです。
10.0ぐらいを楽しみに待っておきます・・・。



> 9.0 をお楽しみに :-)
>     http://lets.postgresql.jp/documents/technical/9.0/1#security
>     GRANT/REVOKE ON ALL objects IN SCHEMA


テーブルが700強あるので助かります。
9.0を楽しみに待っておきます。








On Wed, 24 Mar 2010 14:46:25 +0900
Takahiro Itagaki <itagaki.takahiro @ oss.ntt.co.jp> wrote:

> 
> 恒住 武男 <tsunezumi @ efficlabo.com> wrote:
> 
> > 正式な方法があればよいのですが、
> > Oracleのwrapのような機能はないみたいですね。
> 
> 代案として思いついたものをお知らせしておきます。スーパーユーザにさえも
> 見せたくないならば、こういったアクセス制限以外の方式が必要になります。
> 
> ・暗号化したスクリプトを、普通のテーブル or 外部ファイルで用意しておき、
>   PL/pgSQL で読み込み、復号して動的SQLとして実行する。
> ・「暗号化したスクリプトを実行する PL」を自作する。
>   PL/pgSQL をコピペして改変すれば、改造量自体は多くは無いとは思います。
> 
> > 必ずテーブル単位でしか権限を与えれないのでしょうか?
> > 全テーブルのSELECT権限や特定のスキーマのテーブルのSELECT権限を特定のユーザに
> > 与えることはできないのでしょうか?
> 
> 9.0 をお楽しみに :-)
>     http://lets.postgresql.jp/documents/technical/9.0/1#security
>     GRANT/REVOKE ON ALL objects IN SCHEMA
> 
> 現行バージョンだと、システムカタログに対するクエリを、動的SQLの
> GRANT/REVOKE と組み合わせて使うことになります。残念ながら、
> GRANT/REVOKE のテーブル名の部分をプレースホルダ ($1 等) にはできません。
> 
>     FOR relid IN SELECT oid FROM pg_class ... LOOP
>         EXECUTE 'GRANT SELECT ON ' || relid::regclass || ' TO ...';
>     END LOOP;
> 
> ------------------------------------------------------------
> NTT オープンソース ソフトウェア センタ
> 板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
> 
> 




pgsql-jp メーリングリストの案内