Oracleユーザ管理基礎知識
0.改定履歴
- 2001.01.20 初版
- 2001.05.21 8.1.6のインストレーションガイドを見て不明だったユーザアカウントの情報を追加.
1.はじめに
このドキュメントでは,Oracleのユーザアカウントについて必要な基礎知識についてまとめる.
2.Oracleのアカウントの独立性
Oracleへ接続しなんらかの作業を行うには,Oracleへのログインが必要である.
このログインは,OSへのログインとは基本的に独立している. よって,Oracle上にアカウントを作成し,その権限等を設定する必要がある.
MicrosoftのSQL Server等は,OSのアカウントと統合するような仕組みがあるが,OracleにもWindowsNT版ではそのような仕組みがありそうであるが,ここでは無視する.
3.組み込みアカウント
Oracleをインストールした際に作成されるユーザアカウントがある.
一般的なものは,次のとおりである.
ユーザ名 | パスワード | 用途 |
---|---|---|
internal | oracle | 主にデータベースの開始・停止等の管理タスクを実行するときに使用される. |
scott | tiger | 主に接続確認や学習用に利用される. |
system | manager |
Oracleの管理者用のアカウント. 普通のDBA用. |
sys | change_on_install |
Oracleの管理者用のアカウント. さらに細かい設定が可能なDBA用. |
- Oracle7.xの頃は,systemとsysについてインストール時にパスワードを設定する作業があったが,Oracle8ではデフォルトで上記のようなパスワードが設定される.
- scottユーザは,カスタムインストールで初期データベースをインストーラが作成しないように設定した場合は,作成されない.
表「よく使う組み込みアカウント」のアカウントは,Oracle6〜Oracle8iまでに存在していることを確認している.
その他にも,今後バージョンが変わるにつれ,組み込みアカウントは増えてくるものと思われる.
ちなみに,Oracle8.0.5 for WindowsNTでは,次のようなアカウントが設定されている.
ユーザ名 | パスワード | 用途 |
---|---|---|
DBSNMP | DBSNMP | SNMPAGENTのデータベースロールが含まれており,Oracle Intelligent Agentで利用する(らしい) |
MTSSYS | MTSSYS | Oracle Service for MTSを実行するユーザ. |
CTXSYS | CTXSYS | Oracle interMedia Textのユーザ. |
MDSYS | MDSYS | Oracle interMedia Audio,Video,LocatorおよびImageの管理ユーザ. |
ORDSYS | ORDSYS | Oracle interMedia Audio,Video,LocatorおよびImageのユーザ名であり,Oracle Time ServiceおよびOracle Visual Information Retrivalの管理者. |
ORDPLUGINS | ORDPLUGINS | Oracle InterMedia,Audio,Videoのユーザで,1つのセッションで複数のプラグ印を使用可能. |
outln | outln | プランスタビリティをサポートし,同一のSQL文に対して同じ実行プランを維持できる. 格納されたアウトラインに関係するメタデータを集中的に管理する場所として機能する. |
DEMO | DEMO | 不明. |
COMDEMO | COMDEMO | Oracle COM Automationのユーザ名. |
4.権限設定(ロール)
Oracleのアカウントに,どのような事ができるかという権限を与える必要がある. この権限を与えないと,接続さえできない.
その権限のかたまりの事を,Oracleではロール(role)という.
このロールは,次のようなものが用意されている.
ロール名 | 主な役割 |
---|---|
CONNECT |
エンドユーザとして十分なシステム権限. create session,alter session, create
database link,create sequence,create cluster, create synonym,create
table,create view |
RESOURCE |
アプリケーションデザイナ(開発者)に十分なシステム権限. create cluster,create procedure,create
sequence, create table,create trigger |
DBA |
管理者用のwith admin option 付き全てのシステム権限. |
EXP_FULL_DATABASE |
エクスポート(バックアップ)権限. select any table.backup any table.insert,delete,update
on sys.incvid,sys.incfil,sys.incexp |
IMP_FULL_DATABASE |
インポート(リストア)権限. become user |
通常の利用に際しては,このどれかのロールを与えればよい.
これらのロールは,Oracle6〜Oracle8iで用意されているが,Oracle7の頃に,将来なくなる可能性があるとされていたことがあったが,これからも残るようである.
ロール名 | 主な役割 |
---|---|
AQ_ADMINISTRATOR_ROLE | よーわからん |
AQ_USER_ROLE | よーわからん |
DELETE_CATALOG_ROLE | よーわからん |
EXECUTE_CATALOG_ROLE | よーわからん |
HS_ADMIN_ROLE | よーわからん |
RECOVERY_CATALOG_OWNER | よーわからん |
SELECT_CATALOG_ROLE | よーわからん |
SNMPAGENT | よーわからん |
たいていは,開発者・エンドユーザ用にRESOURCE,管理者用にDBAを使いバックアップもDBAで行っていると思うので,この2つを知っていればよいかと思う.
このロールは,ユーザアカウントに対し,多対多の関係となる.つまり,1ユーザに対して複数のロールを与えられ,1つのロールは複数のユーザに与えることができる.
この場合の権限は,OR条件となり,権限の高いほうが優先される.(とおもう)
また,ロールの中にロールを入れることも可能である.
5.プロファイル
ロールでは,データベースが提供するリソースに対するアクセス権限を設定するが,プロファイルでは,その他の権限や制限について設定することができる.
プロファイル項目は,大きく2つの分けられる.
- 一般
- パスワード
とりあえず普通の利用方法では,プロファイルに関する詳細設定は不要とおもわれるが,セッションに関するチューニング,パスワードによるセキュリティ強化の際に利用すると考えていればよい.
5.1.組み込みプロファイル
プロファイルについては,Oracle社もあまり重要視していない?様で,特別に推奨する設定は無い様である.
プロファイル名 | 内容 |
---|---|
DEFAULT | すべて制限無し |
5.1.一般プロファイル
Oracle8.0.5には,次のような一般プロファイル設定項目がある.
制限 | 単位 | 内容説明 |
---|---|---|
CPU | 100分の1秒 | Oracleへの接続している1セッションがCPUを利用する事時間,1回の呼び出しに割り当てられるCPUの最大時間を設定できる. |
接続時間 | 分 | 1つのセッションに割り当てられる最大接続経過時間. |
アイドル時間 | 分 | 単位で1つのセッションに割り当てられる最大アイドル時間. |
同時セッション数 | 1ユーザ | 最大同時セッション数. |
読込/セッション | ブロック数 | 1セッションに割り当てられるデータベースブロック読み込み総数. メモリやディスクから読み出されるデータ容量の制限となる. |
読込/コール | ブロック数 | 1回のSQL文を処理するために割り当てられる最大データブロック総数. |
プライベートSGA | Kバイト | SGAの共有プール内にセッションによって割り当てられる最大メモリ領域. マルチスレッドサーバの場合のみ利用できる. |
複合制限 |
サービス ユニット |
セッションで使用されたCPU時間,接続時間,読み込み数,プライベートSGAの加重合計.1回のセッションの総リソースコスト. |
これらは,デフォルトではUnlimited(無制限)となっている. 変更する(制限を与える)事があるとすれば,多分ユーザセッションに関するチューニングが必要になったときだと思われる.
5.2.パスワードプロファイル
パスワードに関する詳細な動作について設定することができる.
制限 | 設定内容 | 意味 |
---|---|---|
パスワード期限 | 期限 | 設定した日周期に変更する必要がある. |
ロック | 期限切れ以降のログインの際にパスワード変更が可能な日数を指定. | |
パスワード履歴保存 | 保存 | 同じパスワードを利用できるようになるまでにパスワード変更しなければいけない回数. |
保存期間 | 同じパスワードを再度設定して利用できるまでの期間を日数でしてい. 「保存」が指定されている場合は,この設定は無効となる. | |
パスワード難易度 | ユーザがログインする際に,パスワードの検証にPL/SQLを利用するように設定した場合,それを選べる. Oracleでは,utlpwdmg.sqlというものを提供しているが自分で組み込むことも可能である. | |
ログオンに失敗したアカウントをロック | ログオン失敗 | 指定した回数パスワードを間違えたら,アカウントを使えないようにする. |
ロック期間 | アカウントを使えないようになった場合にロックする期間を日数で指定する. |
それぞれのパスワードの設定内容が「Default」となっている場合は,DEFAULTプロファイルの設定値が適用される. DEFAULTプロファイルの設定値は,インストール直後だとUnlimitedとなっている.
6.おさらい
Oracleでユーザを作成,管理する際には,次のことを考える必要がある.
- ユーザ名を考える
- ロール(権限)をどれにするか考える.
- エンドユーザには,connectロール.
- 業務処理で,connectロールでは権限が足りないときはresourceロール.
- データベース管理者には,dbaロール.
- 必要であれば,ロールを作成する
- プロファイルを設定するか否かを考える.