【一般】セキュリティーロールを使ってみる

セキュリティロールは、Sharperlight 5.2で追加された機能です。定義したルールに基づき、ユーザーやユーザーグループがアクセスできるレコードを制限するソフトセキュリティを追加します。例えば、ユーザーあるいはユーザーグループ単位で閲覧可能な勘定科目コードを制限するといったようなケースに使用できます。

### ユーザーの確認 ###
[Sharperlight](https://sharperlight.jp/)アプリケーションメニューから`サイトセットアップ`を起動します。
ここでは、**jpuser**がFinace/経理部ユーザーグループに属しているという設定になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/5d6505cc-aca7-4d70-5d9a-f999ab62c8e2.png)
それでは、早速セキュリティーロールについて簡単に見ていきます。
### セキュリティーロールの作成 ###
[Sharperlight](https://sharperlight.jp/)アプリケーションメニューから`クエリビルダ`を起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/fa628810-19ed-e177-a4e1-063ccda29180.png)
今回は、製品としてSunSystemsを使用し以下のようなフィルター設定とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/3fd2ecb0-135c-6e66-29c2-35c551235b7a.png)
**Ledger**、**Accounting Period**、**Account Code**が必須フィルターとして自動設定されます。
その**Account Code**に対して、セキュリティロールを作成します。
索引ボタンを押して索引ダイアログを表示させます。そして例えば下図のように収益に関する勘定科目を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/6c8406d2-5b02-0428-ee7e-80ff0a540cf7.png)
右クリックでメニューから**セキュリティロール - 作成**を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/5aabcc74-caec-b1f3-3d26-5d312b4fa1c7.png)
セキュリティロールダイアログが、初期値と共に表示されます。
**コード**、**グループ**および**説明**が既に記入されています。**コード**と**グループ**に関しては、このセキュリティーロール<INS>**使用前**</INS>であれば変更可能です。
**フィルタルール**には、先ほど指定した勘定科目コードが指定されています。
**コードパス**には、全てのテーブルの**Account Code**フィールドへのパスが記述されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/a22a31c6-ab1f-611a-0a05-e599f1d13c2b.png)
ここまででセキュリティーロールの主要部分の定義は完成です。後はユーザーあるいはユーザーグループに、このセキュリティーロールを結びつけるだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c6de2afe-5b67-84cf-740a-6935a4c43013.png)
左側のユーザーおよびユーザーグループ一覧から、右矢印アイコンを使用して対象ユーザーあるいはユーザーグループを右側の領域に設定します。ダブルクリックでも可能です。今回は**Finance/経理部**グループを指定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/08a87cfb-ac6b-e2b0-7dff-0664a19fa215.png)
`適用`あるいは`閉じる`ボタンで設定を保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/cf421884-ffad-daab-ea2e-da22abf6a7f0.png)
クエリビルダの索引ダイアログに戻るので`キャンセル`を押し、更にクエリビルダも閉じます。
### セキュリティーロールの検証 ###
[Sharperlight](https://sharperlight.jp/)アプリケーションメニューから、**Shiftキーを押しながら**`クエリビルダ`を起動します。ログインダイアログが表示されるまで、Shiftキーを押したままにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/3309938d-f124-08b0-399b-77f5c87c0c3d.png)
ユーザー名に**jpuser**とタイプし、`ログイン`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c18e599c-33d1-e169-f1f3-82f3506e3f80.png)
クエリビルダが起動するので、下図のように**製品**、**Business Unit**、**テーブル**を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/42bde945-a033-7165-a065-6fd3e6d445ce.png)
**Account Code**の索引ボタンを押して、索引ダイアログを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/95641951-bf2b-19ec-5670-339c520c969b.png)
先ほど作成したセキュリティーロールが働いて、指定した勘定科目コードだけが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/f9c46fe2-7a0e-1611-2574-47b0587bffa5.png)
指定したユーザーグループに属したユーザーがログインした場合は、このような結果となります。業務上、様々な場面でセキュリティーロールが役に立つことがあるでしょう。是非使用してみてくださいね。

では、失礼します。