2015年10月19日月曜日

PostgreSQL 9.5のBRINインデックス

こんにちは。

2015 年秋にリリース予定の PostgreSQL 9.5 には BRIN (Block Range INdex) と呼ばれる新しいインデックスが追加されます。名前の通り、まとまった単位のブロックに含まれている値をインデックスする仕組みを提供します。ブロックとは PostgreSQL のデータ保存単位の 1 つで、内部的に一まとまり (デフォルト 8 KB) の領域として管理されている物です。デフォルトでは 128 ブロック、つまり 1 MB分の領域に含まれているインデックス対象のカラムのデータをインデックスします。

2015年10月13日火曜日

PostgreSQL 9.5 の行セキュリティポリシー

こんにちは。

この秋リリース予定の PostgreSQL9.5 の行セキュリティポリシーを紹介します。これまではユーザーがアクセス可能な行を制限するにはビューを作成し、アクセスできるテーブルとビューを制限する方法が一般的でした。PostgreSQL 9.5 からは行セキュリティポリシーを利用してアクセス制御が可能になります。

■ ビューによる行アクセス制限の問題

ビューによって参照可能な行を制限できますが、大きな問題がありました。ビューの元となるテーブルのアクセス権限がないとビューにもアクセスできません。ビューでアクセス制限を行っても、元のテーブルにアクセスしてしまえばユーザーは全ての行にアクセスできました。トリガーやルールを駆使すれば可能でしたが行の挿入や更新、削除を簡単な方法で制限することもできませんでした。

行セキュリティポリシーによって PostgreSQL 9.5 からデータベースレベルで行の参照 / 挿入 / 更新 / 削除を簡単に制御できるようになります。