ユーザーガイド > リソースの公開 > 公開されたリソースのセキュリティと権限
 
公開されたリソースのセキュリティと権限
公開されたリソースを使用するには、公開されたリソースと元のリソースの両方に対する適切なアクセス権限が必要です。公開されたリソースには、Studioでリソースを操作するための独自の読み取りおよび書き込み権限がありますが、独自の実行時権限(実行、選択、挿入、更新、削除)はありません。環境のニーズと制限に合わせて、Studioの公開領域と共有領域の権限を設定できます。さまざまな権限を設定する方法の詳細については、『TDV Administration Guide(TDV管理ガイド)』を参照してください。
データソース内のオブジェクトに対する特権は、イントロスペクション時、またはステートメントの実行中にFETCHが呼び出された後にのみ評価されます。したがって、イントロスペクション後にデータソース内のオブジェクトに対する特権が低下した場合、実際のステートメントが実行されるまでエラーはキャッチされません。
列ベースのセキュリティ権限は、TDVを介して公開されるその他のオブジェクトと同じ方法で設定されます。公開レイヤー、共有領域、およびイントロスペクトされたデータソースでビューへのアクセスを制限すると、列にも同じ制限が適用されます。同様に、ビューの列のデータをマスクすると、そのデータは公開データと同じ方法でマスクされます。
特定のTDV環境でリソースのセキュリティと権限がどのように機能するかは状況によって異なります。いくつかのシナリオをテストして、予期したとおりにリソースにアクセスできることを確認することをお勧めします。テーブルは、データベースとして、Webサービスを介してビューとして、またはレガシーWebサービスを介してビューとして公開できるため、すべてのシナリオを確認する必要があります。
外部クライアントからSELECT *を実行すると、次のような結果になる可能性があります。
クエリーの列に対する適切な権限がないというエラーメッセージが表示される
表示権限がある列のみを含む結果が得られる
権限がない列がすべてNULL値になる
構成パラメーターを使用すると、これらのどの結果が発生するかを制御できます。
権限なしで列にアクセスしようとした場合の結果の制御
構成パラメーターを使用すると、どの結果が発生するかを制御できます。
ユーザーに適切な権限がない列に対して返される内容を制御するには
1.Studioのメインメニューで、[Administration(管理)] > [Configuration(構成)]を選択します。
2.[Configuration(構成)]ウィンドウで、[Server(サーバー)] > [Configuration(構成)] > [Security(セキュリティ)] > [Enable Exception For Column Permission Deny(列権限の拒否の例外を有効にする)]に移動します。
3.列レベルの権限がない場合に例外を発生させるには、このパラメーターをtrueに設定します。
4.ユーザーに権限がない列をNULLにするか、何も返されないようにする場合は、このパラメーターをfalseに設定するか、falseに設定されたままにします。