ファイルアクセス権限の基礎 ~ 不正アクセスさせないようにするためには? ~
Question
弊社ではオペレーターがODBCでSQLを用いてファイルの照会を行っています。
本来、必要なファイルを参照のみ可能にするべきと思うのですが、今まで特に気にせず、トラブルもなかったので権限の付与方法を知りませんでした。
しかし先日、オペレーターが誤ってレコードを削除(DELETE)してしまったことを受けて、本来権限を持たないユーザーが様々なファイルにアクセスできる状況を是正すべきと社内会議で決まりました。
オペレーターがSQLで不必要に他のファイルにアクセスしたり編集できたりしないよう権限設定を行うにはどうすればいいでしょうか。
アクセス権限の基礎的な部分を教えてください。
Answer
システムをご利用いただくうえで、権限管理を行う良いきっかけとなった事と思います。
ファイルやレコードを誤って消してしまったので、誰が消したか知りたい、復元して元の状態に戻したい、といったご相談を頂戴することがありますが、ジャーナルを設定して犯人捜しをしたり復旧手順を確立したりする前に、まずは問題が起こらないように適切な権限設定を行う事は非常に大切です。
改めて権限の編集についてご案内いたします。
まず前提として、特定ユーザーの特殊権限に *ALLOBJ がある場合は、アクセス制限はできません。
今回制限されるユーザーはオペレーターとのことなので初めから特殊権限を与えていないものかとは思いますが、今まで何でも触れる状況にあったのであれば、ご確認いただいてもよろしいかもしれません。
念のため以下確認コマンド例でご確認ください。(USRPRFのパラメーターは任意値です)
DSPUSRPRF USRPRF(EBELLUSR)
コマンド実行後1度PgDnキーを押下いただくと、「特殊権限」パラメーターがございますので、こちらを参照してください。
逆に権限設定を行う管理者ユーザーは後に紹介するコマンドを実行するためにオブジェクトの所有者または全オブジェクト特殊権限(*ALLOBJ)を持っている担当者である必要があります。
またファイルに権限を設定すれば、特定ユーザーにアクセスさせないことは可能ですが、ODBCを用いてSQLを発行したときだけアクセスさせないという権限設定はございません。
例えば、あるファイルが下記の権限とします。
=> WRKOBJ OBJ(BDLIB_/BDFILE)
-> 2= 権限の編集
オブジェクト
ユーザー グループ 権限
*PUBLIC *ALL
QSECOFR *ALL
全てのユーザーがファイルにアクセスし編集が可能な状況です。
オブジェクト権限は「オブジェクト権限認可 (GRTOBJAUT)」コマンドによって変更できます。
実行する前に、以下のドキュメントに一度目を通してください。
https://www.ibm.com/docs/ja/i/7.4?topic=ssw_ibm_i_74/cl/grtobjaut.html
実行例:
GRTOBJAUT OBJ(BDLIB/BD*) OBJTYPE(*FILE) USER(EBELLUSR) AUT(*EXCLUDE)
この例ではBDLIB内のBDから始まるファイル全てにEBELLUSRからのアクセスを禁止しています。
またグループプロファイルを用いる事で、個々のユーザー名を指定するのではなく、
GRTOBJAUT OBJ(BDLIB/BD*) OBJTYPE(*FILE) USER(グループ名) AUT(*EXCLUDE)
グループロファイル名を指定することでグループに属すユーザー権限を設定できます。
グループプロファイルのご準備ついてはまたの機会にご紹介出来れば幸いです
適切な権限管理を行って「起きる前に起きないようにする。」を一番に考え設定いただければと思います。
by . 大熊猫橋