[SQL クエリ方式]ダイアログ ボックス

ポリシー サーバは SQL クエリ方式を使用して、リレーショナル データベースでユーザ データを検索するクエリを作成します。stmndr の[SQL クエリ方式]ダイアログ ボックスを使用して、SQL クエリ方式を作成および編集します。
casso11jp
HID_odbc-query-scheme
ポリシー サーバは SQL クエリ方式を使用して、リレーショナル データベースでユーザ データを検索するクエリを作成します。
CA Single Sign-on
の[SQL クエリ方式]ダイアログ ボックスを使用して、SQL クエリ方式を作成および編集します。
注:
列名の接頭辞である「SM_」は、
から要求される追加の特殊名のために予約されています。したがって、ユーザ ディレクトリの列名には、「SM_」という接頭辞を使用しないでください。このプレフィクスが列名に使用されていると、ユーザの検索時にポリシー サーバ エラーが発生します。
SQL クエリ方式の設定
[SQL クエリ方式]ダイアログ ボックスには、ポリシー サーバがユーザ情報やグループ情報にアクセスするときに使用する SQL クエリの詳細を示すフィールドが表示されます。各クエリ フィールドのデフォルト値は、SmSampleUsers という
CA Single Sign-on
サンプル リレーショナル データベースのスキーマに対応しています。別のデータベース スキーマを使用する場合は、テーブル名と列名を変更する必要があります。
複数文字の SQL 検索では「*」を、単一文字の検索では「&」を使用できます。ポリシー サーバで検索が実行される際に、以下のものに置換されます。
  • 「*」は、複数文字の SQL クエリで SQL ワイルドカード文字「%」に置換されます。
  • 「&」は、単一文字の SQL クエリで SQL ワイルドカード文字「_」に置換されます。
クエリ内の「
%s
」式は、クエリの実行時にポリシー サーバから渡されるパラメータのプレースホルダです。
  • Name
    SQL クエリ方式名を定義します
  • Description
    SQL クエリ方式を説明します
  • 列挙
    データベースのグループ オブジェクト名のリストを取得するクエリを定義します。管理 UI は、これらのオブジェクト名と共に、必要に応じてクラス名(ユーザまたはグループ)も表示できます。このクエリではグループだけを列挙して、ユーザは列挙しないことをお勧めします (このクエリでは、論理和を省略します)。[ユーザ/グループ]ダイアログ ボックスで、個々のユーザを入力することもできます
    デフォルト
    select Name, 'Group' as Class from SmGroup order by Class
  • ユーザの認証
    ユーザのパスワードを取得するために実行するクエリを定義します。%s パラメータはユーザ名を表します。
    Oracle データベース用のクエリ方式を設定して、Oracle の暗号化パスワード機能を使用している場合は、クエリ文字列全体を connect という語に置き換えます。このクエリに connect という語を使用すると、ユーザ名とパスワードは Oracle の暗号化パスワード機能によって評価されることがポリシー サーバに通知されます。
    デフォルト
    select Name from SmUser where Name = '%s' and Password = '%s'
  • グループ プロパティの取得
    ここで定義するクエリは、[ユーザ プロパティの取得]フィールド内のクエリと似ていますが、そのユーザが属しているグループのプロパティを返す点が異なります。1 番目の %s パラメータはプロパティ名、2 番目の %s パラメータはグループ名です。プロパティの値は、すべて文字列であることが前提です。
    このプロパティは、[グループ プロパティ] フィールドに指定されたうちの 1 つでなければなりません。
    デフォルト
    select %s from SmGroup where Name = '%s'
  • グループ プロパティの取得
    グループ属性をカンマ区切りリストで定義します。これらの属性はグループの内容を検索する場合や、ポリシーをグループ属性に結び付ける場合に使用します。これらの属性をグループ名と同じテーブルに配置することをお勧めします。
    デフォルト
    Name, GroupId
  • ユーザグループの取得
    ユーザが属しているグループの名前を取得するクエリを定義します。%s パラメータはユーザ名を表します。
    select SmGroup.Name from SmGroup, SmUser, SmUserGroup where SmUser.Name =
    '%s' and SmUser.UserId = SmUserGroup.UserId and SmGroup.GroupId =
    SmUserGroup.GroupId
  • ユーザ/グループ情報の取得
    指定したオブジェクトのクラスを特定します。%s パラメータはオブジェクト名であり、ユーザ名またはグループ名になります。
    デフォルト
    select Name, 'User' from SmUser where Name = '%s' Union select Name, 'Group' from SmGroup where Name = '%s'.
  • ユーザ プロパティの取得
    ユーザ プロパティの値を取得するクエリを定義します。1 番目の %s パラメータはプロパティ名、2 番目の %s パラメータはユーザ名です。プロパティの値は、すべて文字列であることが前提です。
    このプロパティは、[ユーザ プロパティの取得] フィールドに指定されたうちの 1 つでなければなりません。
    デフォルト
    select %s from SmUser where Name = '%s'
  • ユーザ プロパティの取得
    ユーザ属性をカンマ区切りリストで定義します。これらの属性をユーザ名と同じテーブルに配置することをお勧めします。
    デフォルト
    Name, UserId, FirstName, LastName, TelephoneNumber, EmailAddress, PIN,
    Mileage, Disabled
  • ユーザの初期化
    デフォルト
    select Name from SmUser where Name = '%s'
    このクエリは、
    CA Single Sign-on
    管理者が、指定した名前のユーザがデータベース内に存在するかどうかを検索するユーザ ディレクトリ クエリを指定する場合に使用します。%s パラメータはユーザ名を表します。
    手動設定クエリに WHERE 節が含まれていない場合、[ユーザの初期化]から WHERE 節が追加されます。以下に例を示します。
    ユーザの初期化: select Name from SmUser where Name = ’%s’
    手動設定: Select Name from customers
    結果: select Name from customers where Name = ’%s’
    手動設定クエリに WHERE 節が含まれている場合は、[ユーザの初期化] WHERE 節のクエリの一部が追加されます。以下に例を示します。
    ユーザの初期化: select Name from SmUser where Name = ’%s’
    手動設定: Select Name from customers where balance >1000
    結果: select Name from customers where balance >1000 and Name = ’%s’
  • グループのメンバー
    特定ユーザのグループ メンバーシップに関する問い合わせに答えるクエリを定義します。1 番目の %s パラメータはプロパティ名、2 番目の %s パラメータはグループ名です。
    デフォルト
    select Id from SmUserGroup where UserId = (select UserId from SmUser where
    Name = '%s') and GroupId = (select GroupId from SmGroup where Name = '%s')
  • Lookup
    CA Single Sign-on
    管理者がユーザ ディレクトリ検索クエリで属性名を使わずに値を指定する場合に使用するクエリを定義します。
    このクエリは、データベースのデフォルトのユーザ名カラムおよびグループ名カラムを参照し、クエリ内で指定された値と照合しようとします。クエリ結果は、ユーザ カラムおよびグループ カラムの値のうち検索条件と一致するすべての値を組み合わせたものになります。
    たとえば、管理者が「J*」を検索すると、このクエリから文字
    J
    で始まるすべてのユーザとグループのリストが返されます。
    デフォルト
    select Name, 'User' as Class from SmUser where Name %s Union select Name,
    'Group' as Class from SmGroup where Name %s order by Class
  • グループの検索
    [ユーザ ディレクトリ]クエリで、データベースに含まれているグループ テーブルから属性を指定します。
    デフォルト
    select Name, 'Group' as Class from SmGroup where %s
    たとえば、管理者が属性「name=J*」を指定すると、このクエリから Name 属性が
    J
    で始まる全グループのリストが返されます。
    このクエリは [ユーザの検索] クエリと共に実行され、ユーザとグループの両方の結果を組み合わせたリストが返されます。前述の例では、Name 属性が文字
    J
    で始まるすべてのユーザとグループのリストが返されます。
  • ユーザの検索
    [ユーザ ディレクトリ]クエリで、データベースに含まれているユーザ テーブルから属性を指定します。また、ディレクトリ マッピングの実行時や、ODBC データベースに対してユーザを認証する場合にもこのクエリが使用されます。
    デフォルト
    select Name, 'User' as Class from SmUser where %s
    たとえば、管理者が name=J* の属性を指定すると、このクエリから Name 属性が J で始まる全ユーザのリストが返されます。
    CA Single Sign-on
    では、このクエリは[グループの検索]クエリと共に実行され、ユーザとグループの両方の結果を組み合わせたリストが返されます。前述の例では、Name 属性が文字 J で始まるすべてのユーザとグループのリストが返されます。
  • グループ プロパティの設定
    プロパティの値を設定するクエリを定義します。1 番目の %s パラメータはプロパティ値、2 番目の %s パラメータはプロパティ名、3 番目の %s パラメータはグループ名です。これは、SQL の "select" コマンドではなく "update" コマンドであることに注意してください。そのため、データベースの書き込み権限が必要です。プロパティの値は、すべて文字列であることが前提です。
    このプロパティは、[グループ プロパティ] フィールドに指定されたうちの 1 つでなければなりません。
    デフォルト
    update SmGroup set %s = '%s' where Name = '%s'
  • ユーザ パスワードの設定
    ユーザ パスワードの値を設定するクエリを定義します。これは、SQL の "select" コマンドではなく "update" コマンドであることに注意してください。そのため、データベースの書き込み権限が必要です。プロパティの値は、すべて文字列であることが前提です。
    デフォルト
    update SmUser set Password = '%s' where Name = '%s'
  • ユーザ プロパティの設定
    ユーザ プロパティの値を設定するクエリを定義します。1 番目の %s パラメータはプロパティ値、2 番目の %s パラメータはプロパティ名、3 番目の %s パラメータはユーザ名です。これは、SQL の "select" コマンドではなく "update" コマンドであることに注意してください。そのため、データベースの書き込み権限が必要です。プロパティの値は、すべて文字列であることが前提です。
    このプロパティは、[ユーザ プロパティの取得] フィールドに指定されたうちの 1 つでなければなりません。
    デフォルト
    update SmUser set %s = '%s’ where Name = '%s'
  • リテラル クエリを使用
    リテラル クエリ タイプを使用する際に選択します。
    デフォルト
    : これはデフォルトのクエリ タイプです。
  • バインド クエリを使用
    クエリ内でバインドに基づくパラメータを使用する際に選択します。クエリ内でバインドに基づくパラメータを使用するには、「%s」の各インスタンスを疑問符(?)に置き換えます。変更されていないインスタンスは、「%s」として残ります。
    制限
    • Advanced Password Services (APS)ではバインドに基づくパラメータはサポートされません。
    • クエリでは、疑問符(?)が含まれている場合はバインドに基づくパラメータが使用され、「%s」が含まれている場合はリテラル パラメータが使用されます。
    • クエリに、「%s」と疑問符(?)を同時に含めることはできません。