・システム権限とオブジェクト権限の2種類ある ・ロールにロールを付与することもできる ・権限付与だけでなくcreate user等で表領域割り当て(quota)が必要 ・UNLIMITED TABLESPACEはシステム表領域を操作できてしまう ・grant文はロールと権限を混在して記述できない ・ストアド内部ではロールの権限は無視される
まず1つ目。
MySQLでいう、グローバルレベルとテーブルレベルのようなものです。・システム権限とオブジェクト権限の2種類ある
インスタンス全体の権限と、オブジェクト(テーブル、ビュー、パッケージ、ストアド等)の権限です。
テーブルもパッケージもすべて「オブジェクトの1種」という、Oracleの特徴的な考え方がよく表れていると思います。
次、ロールの再帰的付与が可能です。
例を挙げると、IMP_FULL_DATABASEロールはSELECT_CATALOG_ROLEロールを付与しています。・ロールにロールを付与することもできる
次はquota。
スキーマの表領域へのアクセス制限を確認するにあるように、権限とその対象は別々の設定なので注意が必要です。・ロールにロールを付与することもできる
次は特徴というより注意です。
UNLIMITED TABLESPACEはquota設定を無視するのでできるだけ付与しないほうが安全かと思います。・UNLIMITED TABLESPACEはシステム表領域を操作できてしまう
その次もGRANT設定上の注意です。
理由はわからないのですが、カンマ区切りで同時に付与しようとするとエラーになるようです。・grant文はロールと権限を混在して記述できない
最後に、一番ハマりやすい特徴です。
この仕様のせいで、せっかくロールで管理したい権限をスキーマに対していちいち付与しなくてはならないです。・ストアド内部ではロールの権限は無視される
みなさんはどういう管理してるんでしょうかね・・・。
Webフロント用のスキーマ、バッチ用スキーマと使い分けてるんでしょうか。
0 件のコメント:
コメントを投稿