ユーザーの変更と削除¶
Virtual DataPort サーバーの現在のユーザーのリストを表示するには、[Administration] メニューで [User management] をクリックします (「 List of existing users 」を参照)。
多数のユーザーが存在する場合、ダイアログの一番上にあるボックスに名前を入力してユーザーを検索できます。

既存のユーザーのリスト¶
ユーザーの説明とパスワードを更新するには、ユーザーを選択して [Edit] をクリックします。自身のアカウントや他人のアカウントのパスワードを変更するには、自身の現在のパスワードを入力する必要があります。
重要
パスワードを入力せずにログインしたユーザー (Kerberos、Denodo SSO、OAuth でログインしたユーザーなど) は、この操作を実行できません。これらのアクションを行うには、ユーザー名とパスワードでログインする必要があります。
ユーザーが管理者ではない場合、[Assign privileges] をクリックして、既存の Virtual DataPort データベースに対するそのユーザーのアクセス権限を変更します (「 Modifying the Privileges of a User 」を参照)。
ユーザーを削除するには、ユーザーを選択して [Delete] をクリックします。デフォルトの管理者ユーザーである「admin」も削除できますが、常に管理者ユーザーが 1 人以上存在している必要があります。
自分のパスワードの変更¶
自分のパスワードを変更するには、以下の手順を実行します。
Design Studio: ユーザーのアイコン > [Change password] をクリックします。
Administration Tool: [File] メニュー > [Change password] の順にクリックします。
自身のパスワードを変更するには、自身の現在のパスワードを入力する必要があります。
重要
パスワードを入力せずにログインしたユーザー (Kerberos、Denodo SSO、OAuth でログインしたユーザーなど) は、この操作を実行できません。これらのアクションを行うには、ユーザー名とパスワードでログインする必要があります。
ユーザーの権限の変更¶
[User management] ダイアログで [Assign privileges] をクリックして、ユーザーが Virtual DataPort のデータベースとビューにアクセスするための権限を変更します。
「管理者」ユーザーはすでにあらゆる操作を実行するための権限を持っているため、管理者ユーザーに権限を割り当てることはできません。
[Assign privileges] ダイアログには、既存の Virtual DataPort データベース のリストが表示されます (「 Assigning privileges to a user at database level 」を参照)。データベースごとに、一連のチェックボックスを使用して、必要なグローバルアクセス権限をユーザーに割り当てることができます。

データベースレベルでのユーザーへの権限の割り当て¶
ユーザーに割り当て可能な、データベースに対する権限は次のとおりです。
Admin (ローカル管理者)
Connect
Create
Create data source
Create view
Create data service
Create folder
Metadata
Execute
Write
Insert
Delete
Update
これらの権限を割り当てられているユーザーが実行できるタスクについては、「 アクセス権限のタイプ 」を参照してください。
データベースの特定のビュー、ストアドプロシージャ、データソース、Web サービスに対する権限を構成するには、[edit] をクリックして [Advanced privileges] ダイアログを開きます。データベースのビュー、プロシージャ、データソース、Web サービスのリストが表示されます。このダイアログで、それぞれに対応するチェックボックスをチェックして、ビュー、ストアドプロシージャ、データソース、Web サービスプロシージャに対する権限をユーザーに付与できます (付与できる権限はエレメントのタイプによって異なります。下図を参照してください)。

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

フォルダのすべてのエレメントに対する「Write」権限のユーザーへの付与¶
このダイアログで、特定のビューに以下の権限を割り当てることもできます。
ビューに対する列権限を割り当てるには、[Execute] 列のチェックボックスをチェックして、ビューに対する Execute アクセスをこのユーザーに割り当てて (このユーザーがデータベースに対する Execute アクセスを持っていない場合のみ)、ビューを選択し、[Assign column privileges] をクリックします。
このダイアログでは、このユーザーに投影を許可する列をチェックし、それ以外の列はクリアします。ユーザーがこのビューに対してクエリを実行する際、チェックした列を投影できます。
たとえば、図「 Establishing column privileges over a view (User Management) 」に示す列権限を持つユーザーは、このビューの summary
、 ttime
、 taxid
、および iinc_id
の各フィールドを投影できます。しかし、このビューのそれ以外のフィールドのいずれかを投影するクエリは失敗します。

ビューに対する列権限の設定 (ユーザー管理)¶
ビューの内容に対して制限を追加することにより、特定のユーザー、または特定のロールに属するユーザーがビューに対してクエリを実行したときに一部の行のみを取得できるようにすることもできます。
ビューの内容に対して制限を追加するには、ビューに対する「Execute」権限を有効にして (このユーザーがデータベースに対する「Execute」アクセスを持っていない場合のみ)、ビューを選択し、[Assign restrictions] をクリックします。このダイアログにはビューの現在の制限が表示され、新しい制限の追加や、既存の制限の編集・削除を行うことができます。

ビューの内容に対する行制限¶
新しい制限を追加するには、[New restriction] をクリックします。

ビューの内容に対する行制限の追加 (ユーザー管理)¶
このダイアログでは、「制限条件」を入力する必要があります。これを行うには、[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] を選択したとします。
user1
が SELECT * FROM product
を実行すると、サーバーは在庫がある (quantity > 0
) 製品のみを返します。
例 2: internet_inc
ビューに対する行制限をユーザー user2
に割り当てて、条件 iinc_id <> 1
を指定し、「機密フィールド」として iinc_id
と summary
を選択し、アクション [Reject row if ALL sensitive fields are used] を選択したとします。
user2
が SELECT * FROM internet_inc
を実行すると、サーバーは条件 iinc_id <> 1
に一致する行のみを返します。しかし、 user2
が SELECT summary FROM internet_inc
を実行した場合は、サーバーはビューのすべての行を返します。なぜなら、制限で選択されているすべての「機密フィールド」が投影されているわけではないので、制限がトリガーされないからです。
例 3: internet_inc
ビューに対する行制限をユーザー user3
に割り当てて、条件 iinc_id <> 1
を指定し、「機密フィールド」として iinc_id
と summary
を選択し、アクション [Reject row if ANY sensitive fields are used] を選択したとします。
user3
が SELECT * FROM internet_inc
を実行すると、サーバーは条件 iinc_id <> 1
に一致する行のみを返します。さらに、 user3
が SELECT summary FROM internet_inc
を実行した場合は、制限もトリガーされて、この条件に一致する行のみを返します。
クエリの結果をフィルタするかどうかを判断するためにより複雑な情報を考慮する行制限が必要な場合、カスタムポリシーを作成できます (『開発者ガイド』の「 カスタムポリシー 」を参照)。カスタムポリシーは制限に非常によく似ており、同じ方法で割り当てます。
カスタムポリシーをインポートしたら (「 拡張機能のインポート 」を参照)、ビューに対するカスタムポリシーとしてユーザーまたはロールに割り当てることができます。これを行うには、データベースのビューに対するユーザーまたはロールの権限を管理するダイアログを開いて、ビューを選択し、[Assign custom policies] をクリックします。次に、[New custom policy] をクリックして、カスタムポリシーの名前をクリックします。ポリシーにパラメータがある場合、ここでパラメータの値を指定する必要があります。この値は、実行時にポリシーに渡されます。