ユーザーの変更と削除

Virtual DataPort サーバーの現在のユーザーのリストを表示するには、[Administration] メニューで [User management] をクリックします (「 List of existing users 」を参照)。

多数のユーザーが存在する場合、ダイアログの一番上にあるボックスに名前を入力してユーザーを検索できます。

List of existing users

既存のユーザーのリスト

ユーザーの説明とパスワードを更新するには、ユーザーを選択して [Edit] をクリックします。

ユーザーが管理者ではない場合、[Assign privileges] をクリックして、既存の Virtual DataPort データベースに対するそのユーザーのアクセス権限を変更します (「 Modifying the Privileges of a User 」を参照)。

ユーザーを削除するには、ユーザーを選択して [Delete] をクリックします。デフォルトの管理者ユーザーである「admin」も削除できますが、常に管理者ユーザーが 1 人以上存在している必要があります。

アクティブユーザーのパスワードの変更

自分のパスワードを変更するには、[File] メニュー > [Change password] の順にクリックします。

ユーザーの権限の変更

[User management] ダイアログで [Assign privileges] をクリックして、ユーザーが Virtual DataPort のデータベースとビューにアクセスするための権限を変更します。

「管理者」ユーザーはすでにあらゆる操作を実行するための権限を持っているため、管理者ユーザーに権限を割り当てることはできません。

[Assign privileges] ダイアログには、既存の Virtual DataPort データベース のリストが表示されます (「 Assigning privileges to a user at database level 」を参照)。データベースごとに、一連のチェックボックスを使用して、必要なグローバルアクセス権限をユーザーに割り当てることができます。

Assigning privileges to a user at database level

データベースレベルでのユーザーへの権限の割り当て

ユーザーに割り当て可能な、データベースに対する権限は次のとおりです。

  • Admin (ローカル管理者)

  • Connect

  • Create

  • Create data source

  • Create view

  • Create data service

  • Create folder

  • Metadata

  • Execute

  • Write

これらの権限を割り当てられているユーザーが実行できるタスクについては、「 アクセス権限のタイプ 」を参照してください。

データベースの特定のビュー、ストアドプロシージャ、データソース、Web サービス、またはウィジェットに対する権限を構成するには、[edit] をクリックして [Advanced privileges] ダイアログを開きます。データベースのビュー、プロシージャ、データソース、Web サービス、およびウィジェットのリストが表示されます。このダイアログで、それぞれに対応するチェックボックスをチェックして、ビュー、ストアドプロシージャ、データソース、Web サービス、またはウィジェットに対する権限をユーザーに付与できます (付与できる権限はエレメントのタイプによって異なります。下図を参照してください)。

Granting privileges to a user at view/stored procedure/data source/web service/widget level

ビューまたはストアドプロシージャレベルでのユーザーへの権限の付与

権限はビューごとに付与できます。また、フォルダーのすべてのエレメントに対する権限を割り当てることもできます。これを行うには、フォルダーを右クリックして [Select on all folder elements] をクリックし、[Execute privilege]、[Write privilege] などをクリックします。Virtual DataPort では、ビュー、ストアドプロシージャ、データソース、Web サービス、またはウィジェットの権限は、フォルダー別ではなく個別に管理されます。したがって、フォルダーのすべてのエレメントに対する権限を付与した後でそのフォルダーにエレメントを追加した場合、追加したエレメントに対する権限を付与する必要があります。そうしないと、追加したエレメントに対する権限は付与されません。

Granting “Write” privileges to a user over all the elements of a folder

フォルダーのすべてのエレメントに対する「Write」権限のユーザーへの付与

このダイアログで、特定のビューに以下の権限を割り当てることもできます。

ビューに対する列権限を割り当てるには、[Execute] 列のチェックボックスをチェックして、ビューに対する Execute アクセスをこのユーザーに割り当てて (このユーザーがデータベースに対する Execute アクセスを持っていない場合のみ)、ビューを選択し、[Assign column privileges] をクリックします。

このダイアログでは、このユーザーに投影を許可する列をチェックし、それ以外の列はクリアします。ユーザーがこのビューに対してクエリを実行する際、チェックした列を投影できます。

たとえば、図「 Establishing column privileges over a view (User Management) 」に示す列権限を持つユーザーは、このビューの summaryttimetaxid 、および iinc_id の各フィールドを投影できます。しかし、このビューのそれ以外のフィールドのいずれかを投影するクエリは失敗します。

Establishing column privileges over a view (User Management)

ビューに対する列権限の設定 (ユーザー管理)

ビューの内容に対して制限を追加することにより、特定のユーザー、または特定のロールに属するユーザーがビューに対してクエリを実行したときに一部の行のみを取得できるようにすることもできます。

ビューの内容に対して制限を追加するには、ビューに対する「Execute」権限を有効にして (このユーザーがデータベースに対する「Execute」アクセスを持っていない場合のみ)、ビューを選択し、[Assign restrictions] をクリックします。このダイアログ (「 Row privileges over the contents of a view 」を参照) には、ビューの現在の制限が表示され、新しい制限を追加したり、既存の制限を編集または削除したりすることができます。

Row privileges over the contents of a view

ビューの内容に対する行制限

新しい制限を追加するには、[New restriction] をクリックします。

Adding a row restriction over the contents of a view (User Management)

ビューの内容に対する行制限の追加 (ユーザー管理)

このダイアログでは、「制限条件」を入力する必要があります。これを行うには、[Simple condition] または [Specify Where expression] をクリックして、条件を入力します。次に、条件を 満たさない 行に対して実行するアクションを選択します。

  • Reject row: 行は破棄されます。

  • Reject row if ANY/ALL sensitive fields are used: ユーザーが、指定した機密フィールドの「いずれか」または「すべて」を投影する場合に、条件を満たさない行を拒否します。[ANY] と [ALL] は、クリックして切り替えることができます。

  • Mask sensitive fields if ANY/ALL sensitive fields are used: 上のオプションに似ていますが、行を拒否するのではなく、機密の値を NULL に設定します。

この条件にはサブクエリを指定できます。

行制限の動作例

例 1: product ビューに対する行制限をユーザー user1 に割り当てて、条件 id = ANY (SELECT product_id FROM warehouse WHERE quantity > 0) を指定し、アクション [Reject row] を選択したとします。

user1SELECT * FROM product を実行すると、サーバーは在庫がある (quantity > 0) 製品のみを返します。


例 2: internet_inc ビューに対する行制限をユーザー user2 に割り当てて、条件 iinc_id <> 1 を指定し、「機密フィールド」として iinc_idsummary を選択し、アクション [Reject row if ALL sensitive fields are used] を選択したとします。

user2SELECT * FROM internet_inc を実行すると、サーバーは条件 iinc_id <> 1 に一致する行のみを返します。しかし、 user2SELECT summary FROM internet_inc を実行した場合は、サーバーはビューのすべての行を返します。なぜなら、制限で選択されているすべての「機密フィールド」が投影されているわけではないので、制限がトリガーされないからです。


例 3: internet_inc ビューに対する行制限をユーザー user3 に割り当てて、条件 iinc_id <> 1 を指定し、「機密フィールド」として iinc_idsummary を選択し、アクション [Reject row if ANY sensitive fields are used] を選択したとします。

user3SELECT * FROM internet_inc を実行すると、サーバーは条件 iinc_id <> 1 に一致する行のみを返します。さらに、 user3SELECT summary FROM internet_inc を実行した場合は、制限もトリガーされて、この条件に一致する行のみを返します。


クエリの結果をフィルターするかどうかを判断するためにより複雑な情報を考慮する行制限が必要な場合、カスタムポリシーを作成できます (『開発者ガイド』の「 カスタムポリシー 」を参照)。カスタムポリシーは制限に非常によく似ており、同じ方法で割り当てます。

カスタムポリシーをインポートしたら (「 拡張機能のインポート 」を参照)、ビューに対するカスタムポリシーとしてユーザーまたはロールに割り当てることができます。これを行うには、データベースのビューに対するユーザーまたはロールの権限を管理するダイアログを開いて、ビューを選択し、[Assign custom policies] をクリックします。次に、[New custom policy] をクリックして、カスタムポリシーの名前をクリックします。ポリシーにパラメーターがある場合、ここでパラメーターの値を指定する必要があります。この値は、実行時にポリシーに渡されます。