ルールの規則
通常、ルールは文章として読み取ることができます。
"[条件] の場合、要請者に [リソース] の [アクション] を許可する"
このセクションでは、ルールを構築するために使用可能なアクション、リソース、条件、その他プロパティについて説明します。
ルール構文の読み取り
ルール構文は次のとおりです。
- 通常のテキストでかっこの外に書かれている言葉は必須 (必要)。
- かっこの外側または内側に太字で書かれている言葉または文字は必須。
- かっこ内に斜体で書かれている言葉はオプション。
- 構文の説明で青色になっている言葉は構文のさらなる情報へのリンク。
ルールのプロパティ
一部のルールには、次のすべての項目がないものもあります。
テンプレートからルールを作成作成したいルールの種類を選択します。リソースフィルタとアクションは自動的に入力されます。(オプション)
無効化: ルールを無効にする場合に選択します。無効のルールの効果は、 プレビューまたは監査ツールを使用して評価されます。(オプション)
名前: ルールを識別するための名前。(必須)
説明: ルールの意図の短い説明。(オプション)
リソース フィルター: ルールを評価するリソース タイプの定義 (必須) (必須)
resourcetype1[*][_*][, resourcetype2[*][_*], ...]
アクション:ルールが「True」と評価された場合に、ユーザーがリソースで実行できるアクションの必須定義。 (必須)
action [, action]
コンテキスト: ルールを適用するかどうかを指定します: [Both in hub and QMC]、[Only in hub ]、[Only in QMC] のいずれかに指定できます。
タグ: ルールにタグを追加します。(オプション)
ルールの条件
ルールを適用するために満たす必要のあるリソース/ユーザー条件を定義します。(オプション)
条件は、プロパティ値のペアを使用して定義されます。リソースやユーザー条件を指定する必要はありません。実際、[条件] 項目は空欄のままにしておくことができます。
[resource.resourcetype = "resourcetypevalue"] [OPERATOR] [(((resource.property = propertyvalue) [OPERATOR (resource.property = propertyvalue)))]
条件の関数
QMC には予め定義されている関数が複数含まれており、対象リソースからプロパティ値を返すために使用できます。
IsAnonymous
アクセスを要求しているユーザーが匿名でログインしている場合に「True」を返すユーザー条件のブール型機能。その他の場合は「False」を返します。
user.IsAnonymous()
HasPrivilege
要求しているユーザーが対象となるリソース (複数可) に指定されたアクセス権を有する場合に「True」を返すリソース条件のブール型機能。その他の場合は「False」を返します。
resource.HasPrivilege("アクション")
IsOwned
指定リソースに所有者がいる場合に「True」を返す [リソース条件] のブール型機能。その他の場合は「False」を返します。
resource.IsOwned()
Empty()
指定リソースに接続がない (値がない) 場合に「True」を返すリソース条件のブール関数。その他の場合は「False」を返します。
resource.Streams.Empty()
条件の演算子
論理演算子の適用順位付け
1 つ以上の論理演算子が条件内で使用されている場合は、 NOT がまず評価され、その次に AND、最後に OR が評価されます。s 丸括弧を使えば、必要でない場合であっても条件が読みやすくなり、演算子の適用順位付けができるため間違いのリスクを減らすことができます。
A OR B AND C は Qlik Sense セキュリティ ルールでどのように解釈されますか。
A OR (B AND C)として解釈されます。
AND
この演算子は 2 つの数式を比較して、両者とも「True」の場合にのみ、「True」を返します。
(EXPRESSION) && (EXPRESSION)
(EXPRESSION) and (EXPRESSION)
OR
この演算子は 2 つの数式を比較して、一方あるいは両方の数式が「True」の場合に「True」を返します。
(EXPRESSION) || (EXPRESSION)
(EXPRESSION) or (EXPRESSION)
EQUAL
この演算子では、大文字と小文字が区別されません。比較対象の数式と等しい場合は True を返します。リストが使用される場合、1 つの値だけが一致する必要があります。
(EXPRESSION) = (EXPRESSION)
STRICT EQUAL
この演算子では、大文字と小文字の区別がなされます。比較対象の数式と完全に等しくなる場合は True を返します。値が使用されている数式がリストに存在する場合、完全なリストは必ずしも一致しません。
(EXPRESSION) == (EXPRESSION)
NOTEQUAL
この演算子では、大文字と小文字が区別されません。比較対象の数式と等しくない場合は True を返します。リストが使用される場合、1 つの値だけが一致する必要はありません。
(EXPRESSION) != (EXPRESSION)
STRICT NOT EQUAL
この演算子では、大文字と小文字の区別がなされます。比較対象の数式と等しくない場合は True を返します。値が使用されている数式がリストに存在する場合、完全なリストは必ずしも一致しません。
(EXPRESSION) !== (EXPRESSION)
NOT
この演算子は数式のブール値を反転し、数式が「False」の場合は「True」を返し、数式が「True」の場合は「False」を返します。
!(EXPRESSION)
LIKE
セキュリティ ルールは、正規表現の演算子「like」に対応しています。この演算子で大文字と小文字は区別されず、日本語のひらがなとカタカナも区別されません。
(EXPRESSION) like (EXPRESSION)
MATCHES
セキュリティ ルール エディタは、正規表現の演算子「matches」をサポートしています。この演算子は大文字と小文字を区別しないので、大文字か小文字かにかかわらず表現に合致した結果を返します。Regex の開始および終了アンカーは暗黙的に追加されます。
(EXPRESSION) matches (EXPRESSION)