MENU
Dr.Sumにはユーザーやグループに環境変数をセットすることができます。この環境変数をビューなどの抽出条件にセットすることで、ログインするIDによって抽出されるデータを制御することが可能になります。
今回は基本的な環境変数の使い方と、検索条件に入れるときの注意点について紹介をします。
上の図は環境変数をつかってログインするユーザーのグループごとに抽出するデータを制御する方法です。
手順は簡単で、
という設定をすればOKです。
Dr.Sumでは管理者(Administrator/Administratorsグループへの所属など)はすべての権限を持っていますが管理者がすべてのデータを参照する場合には検索条件に管理者を含める必要があります。
しかし上記の設定をすると、管理者はすべてのデータを表示することができなくなってしまいます。その場合の回避方法を確認しておきましょう。
Administratorsグループに所属したユーザーがGET_GROUP_INFOを使用すると、グループ全体のプロパティ値の集合を条件に設定します。そのため、すべてのデータを参照の対象としたい場合は、条件が不足して意図した動作にならない場合があります。
すべてのデータを参照の対象としたい場合は、以下の条件を追加すると、Administratorsグループに所属したユーザーはすべてのデータを表示します。
SELECT * FROM 受注ビュー WHERE 地域 IN(GET_GROUP_INFO(ENV1)) OR 'Administrators' IN (GET_GROUP_INFO(ID))
SELECT * FROM 受注ビュー WHERE 地域 IN(GET_GROUP_INFO(ENV1)) OR GET_USER_INFO(ID) = 'Administrator'
どちらの式もOR条件を使用して、グループやユーザーが管理者であればデータをすべて表示するようにしています。
ただしOR文を使用するとパフォーマンスが低下してしまう可能性がありますので、バランスを見て使用してみてください。
もうすこし複雑な条件設定をする場合はこちらを参照ください。LIKE関数や正規表現を使用してSQLを書いています。
環境変数を活用することで運用をより楽にすることもできますので、ぜひ活用してみてください。
他にも環境変数の使い方の解説がありますので、あわせてご覧ください。
Related article
Pick up
Ranking
Info