データベースビューに対するIBM System iの権限


8

IBM i OS v6r1を実行しているIBM System iがあります。このシステムでは、いくつかのデータベースビューを作成しました。私がしたいのは、特定のユーザーグループに、これらのビューのみへのアクセス権を与え、ビューが存在するライブラリ内の他のアクセス権を与えないことです。これは可能ですか?私のビューが配置されているライブラリ内のすべてのテーブルとビューに対する読み取り専用のアクセス許可を持つユーザーグループがあり、ユーザーがこのユーザーグループの下にあるときにアクセスが機能します。ユーザーグループをコピーして、作成したビューのみを含めるようにアクセス許可を割り当てようとしたところ、アクセスが拒否されました。ユーザーまたはユーザーグループは、ビューにアクセスするために、ビューの作成元のテーブルに対する権限も持っている必要がありますか?


これをdba.stackexchange.comに投稿することを検討してください
WarrenT

@WarrenTは、それがiSeries /ミッドレンジのDBの問題であるのと同じくらいシステム管理の問題であると信じています-DB2データベースはOS / 400に緊密に統合されており、この問題からは、OS / 400の権限が物事をつまずくライブラリ。(残念ながら、ミッドレンジボックスにログインしてから長い間、問題を解決する方法が100%わかりません!)
voretaq7

@ voretaq7はい。データベースはオペレーティングシステムの本質に組み込まれているだけでなく、マシン自体(マシンインターフェース、MI)に組み込まれています。私がQSECOFRになってから10年以上になります。そのため、答えを調べる必要があります。しかし、まだ誰も回答しておらず、どちらのサイトでも公平なゲームであるため、dbaに頭上からそれを知っている人がいるかもしれません。
WarrenT 2013年

回答:


4

はい。ビューを使用する権限を付与するだけでは不十分です。ユーザーは、基になるテーブルに対する権限も持っている必要があります。

制限付きユーザーへのアクセスを許可する1つの方法は、借用権限です。例として、次のことを前提とします。

ユーザーRESTRICTEDはどのテーブルにもアクセスできません。すべてのライブラリーがAUT(* EXCLUDE)であるか、またはユーザーRESTRICTEDがすべてのライブラリーに対する* EXCLUDE権限を持っている。USER PERMITTEDは、テーブルとライブラリにアクセス(または所有)できます。ライブラリDATAにはテーブルがあります。ライブラリPROGRAMSには、プログラムとストアドプロシージャがあります。

ライブラリーPROGRAMSにRPGストアード・プロシージャーを作成することを許可します。プログラムにUSRPRF(* OWNER)が指定されていることを確認してください。つまり、プログラムを実行すると、プログラムを実行するプロファイルの権限(RESTRICTED)ではなく、所有者の権限(PERMITTED)が使用されます。

RPGプログラムオブジェクトへのPERMITTED * USE権限をユーザーに付与します-または-SQLを介してGRANTします。また、ライブラリPROGRAMSへのRESTRICTED * USEアクセスをユーザーに許可します。これにより、RESTRICTEDがストアドプロシージャ/プログラムを実行できるようになります。

ユーザーRESTRICTEDにはDATAのテーブルにアクセスする権限がなく、そのままにしておきたいことに注意してください。

ここで、ユーザーRESTRICTEDにSQLを使用してストアドプロシージャを呼び出します。ライブラリーPROGRAMSおよびコンパイルされたプログラムオブジェクトに対する* USE権限を持っているため、彼女にはプログラムを実行する権限があります。ストアード・プロシージャーは、所有者PERMITTEDの権限で実行されます。PERMITTEDはライブラリーDATAおよびその中のテーブルへの完全なアクセス権を持っているため、ストアード・プロシージャーはそれらのテーブルにアクセス/更新できます。RESTRICTEDが使用しようとする未加工のSQLは、権限が不十分なために失敗します。彼女が実行できるのは、自分用に作成されたストアドプロシージャを呼び出すことだけです。

プログラムがデータと同じライブラリーに保管されている場合は、ライブラリーにRESTRICTED * USE権限を付与し、そのライブラリーのすべてのテーブルに対して(* EXCLUDEを介して)具体的に制限する必要があります。ストアドプロシージャのみを保持するRESTRICTEDライブラリを作成し、そのライブラリへのアクセスを許可する方が簡単な場合があります。DATAで新しく作成されたテーブルから彼女を制限し続けることを覚えておく必要がないため、これにより継続的なメンテナンスが容易になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.