1

「列に対するSELECT権限が拒否されました」というメッセージが表示されないように、データウィンドウでDB列権限を処理する方法....

テーブルの列を表示するデータウィンドウがあり、ユーザー/ロールの権限は特定の列で異なり、アプリケーションの権限を上書きしないようにデータベースレベルのビジネスルールに従って設定されています...

問題は、特定の列に対する「選択権限」を持っていないシステムにログインしているユーザーが、「列 xyz に対する選択権限が拒否されました...」というエラー メッセージを受け取り、データウィンドウが行のみを取得する代わりに情報を取得しないことです。列には、次の「選択」権限があります...

同様のケースでデータウィンドウで列のアクセス許可を処理する方法を知っている人はいますか?

4

1 に答える 1

1

これを処理する簡単な方法はありません。

アイデアを探しているかどうかはわかりませんが、考えられるバリエーションの数と、ソリューションをどの程度ダイナミックにしたいかによって異なります。

DBMS レベルで列レベルのアクセス許可を使用するショップで働いたことはありませんが、さまざまな役割に対してロックアウトされた列のグループがあると想定しています。ほんの一握り (たとえば 3 つ) のバリエーションがあった場合は、データ オブジェクトの 3 つのバージョンを作成し、取得する前に適切なバージョンを交換します。

それ以外の場合、より困難なオプションは、データ オブジェクトを取得する前に、ロールによって、または何らかの方法でシステム テーブルにクエリを実行することによって、データ オブジェクトを動的に変更することです。

私が試したことがなく、うまくいくかどうかわからないもう1つのアイデアは、SQLからデータオブジェクトを動的に作成することです。関数はcreatefromsqlと呼ばれ、select * from xyzを使用するだけですが、表示のみの場合にのみ実行可能ですそうしないと、データオブジェクトを更新可能にし、すべての更新可能な列を設定するために、多くの動的な変更が必要になります。

幸運を。

于 2010-11-29T01:12:46.040 に答える