行レベルセキュリティ(Row-Level Security, RLS)は、特定のテーブルとロールセットにフィルターを適用して、ユーザーが照会可能なデータリストを制限する機能です。
例えば、マーケティング部門のメンバーは、マーケティング部門のデータのみを閲覧できるように設定することができます。
設定方法
1.
右上の設定 → セキュリティ → 行レベルセキュリティ メニューをクリックします。
2.
右上の + ルール ボタンをクリックします。
3.
行レベルセキュリティのフィルタ情報を入力します。
a.
フィルタのタイプ: レギュラー、ベース の中から選択します。
i.
レギュラー: そのロールに属するユーザーに対するすべてのクエリに適用されます。
ii.
ベース: ロールに追加されていない not ユーザーのすべてのクエリに適用されます。
b.
データセット: 行レベルセキュリティのフィルタを適用するテーブルを選択します。
c.
ロール: 行レベルセキュリティのフィルタを適用するロールを選択します。この時、RLSを適用するためのロールを別個に作成して使用することをおすすめします。
d.
グループキー (オプション): 必要に応じて、AND や OR 条件を適用できるグループを指定する識別子を入力します。
e.
句: 適用するフィルタ条件を入力します。
i.
生成されるフィルタは、SQL文のWHERE句に自動的に追加されます。
ii.
複数の条件を含むフィルタも設定可能です。
例: 部署 = "営業部" AND チーム = "オンラインチーム"
f.
保存 ボタンをクリックします。
1つのロールに複数の行レベルセキュリティのフィルタを付与する際の注意事項
•
1つのロールに複数のルールが付与されている場合、SQLクエリステートメント内で AND 構文を使用して結合されます。
•
互いに競合するフィルタが1つのロールに付与されている場合、結果の無いクエリが生成される可能性があるので注意してください。