私は Greenploum データベースを使用していますが、多かれ少なかれ Postgres と同じであると想定しています。テーブルが分割されている列の値に基づいて、行レベルのセキュリティ ポリシーを実装したいと考えています。
私はテーブルを持っています。TABLE ランク (id int、rank int、year int、gender char(1)、count int、source_system テキスト)
サンプルデータ:
(1,2, 2012, 1,1, source_system_a),
(2,1, 2012, 1,1, source_system_b),
(3,4, 2012, 1,1, source_system_a),
(4,3, 2012, 1,1, source_system_c),
テーブルは、source_system 列に基づいて分割されます。source_system 列に基づいて、すべてのデータを表示できる一連のユーザーと、すべてを表示できない一連のユーザーが必要です。source_system_a は安全な値である必要があるため、安全な権限を持つユーザーのみが source_system_a を含む行を表示できる必要があります。
例えば、
ユーザー a (すべてを見ることができる) は「select * from rank;」を実行します。
結果:
1,2, 2012, 1,1, source_system_a,
2,1, 2012, 1,1, source_system_b,
3,4, 2012, 1,1, source_system_a,
4,3, 2012, 1,1, source_system_c,
ユーザー b (安全でない) は「select * from rank;」を実行します。
結果:
2,1, 2012, 1,1, source_system_b,
4,3, 2012, 1,1, source_system_c,
どうもありがとう