ユーザ設計についてメモ
DBのユーザ設計のポイントは以下の2点である。
- デフォルトのデータ格納先
- 権限
以下、Oracleの場合で具体的に見ていく。
(※なお、Oracleの場合はユーザ≒スキーマなので、データ設計も絡む)
デフォルトのデータ格納先
デフォルトユーザー表領域には、以下の2種類の設定方法がある。
- データベース内共通:本番環境はこちらになる。DB作成時にDEFAULT TABLESPACE句。
- ユーザごと:テスト環境などではこちらにすることが多い
表領域割り当て制限は、基本的にUNLIMITED(無制限)指定でOK。
権限
権限には、以下の2種類がある。
- システム権限:システム全体に対する権限
- オブジェクト権限:特定のオブジェクトに対する権限
基本的には、以下の手順でユーザ作成・権限付与する。
- ロールの作成(テーブル所有ユーザ、アプリケーションユーザ)
- ユーザの作成(テーブル所有ユーザ、更新ユーザ、参照ユーザ)
- テーブル作成(※テーブル所有ユーザにより)
- オブジェクト権限の付与(※テーブル所有ユーザによって、更新ユーザ、参照ユーザへ)
- シノニムの作成(※スキーマ名の隠蔽を目的として)
注意点
- 事前定義済みロールである、DBA、CONNECT、RESOURCEの3つは、Oracleの旧リリースとの互換性のために用意されている。テスト時などの使用はOKだが、本番では別途ロール設計が必要である
- 上記の手順では、頻繁にテーブルの追加・削除が行われる環境の場合に以下の作業が発生し、作業が煩雑になる点は押さえておく。
- テーブルの削除と同時にオブジェクト権限も無効になるため、追加の毎にオブジェクト権限付与が必要になる
- シノニムの作成は各ユーザに対して行う必要がある
補足:プロファイル
ユーザーのリソース制限を定義し、ユーザに適用することができる。
パスワード執行期限や同時接続数など。
補足:DB環境定義書の記載項目例
ユーザ一覧
ユーザ名、デフォルト表領域、一時表領域、表領域割り当て制限、プロファイル、ロール、システム権限、備考
ロール一覧
ロール名、システム権限、備考
オブジェクト権限一覧
テーブル所有者、テーブル名、付与対象ユーザ、権限(SELECT、INSERT、UPDATE、DELETE)
参考文献
プロとしてのOracle物理設計入門 増補改訂版 (Oracle現場主義)
- 作者: 株式会社メトロシステムズ ITソリューション事業部
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2007/12/22
- メディア: 単行本
- 購入: 3人 クリック: 29回
- この商品を含むブログ (9件) を見る