ORACLEにデータベース管理者として接続するためには、特別な権限が必要となる。それらは以下の2つのうちのいずれかを使用することとなる。
なお、データベースに管理者権限で接続している場合、別のユーザ名でログインしていたとしても、ユーザSYSで接続していることになる。
OS認証の手順は以下のようになる
OS認証を行う場合、ORACLE内部での権限の付与は必要無い。所属するOSグループによって、自動的にOSDBA/OSOPERのロールが付与される。これらのロールには、以下の権限が付与される:
パスワード認証の手順は以下のようになる
SYSDBAとして接続すると、元のユーザに関わり無くSYSユーザで接続していることとなり、特別なロールOSDBAが付与される。SYSOPERとして接続すると、元のユーザに関わり無くPUBLICユーザで接続していることとなり、特別なロールOSOPERが付与される。
ORAPWDの構文は以下の通りである。
ORAPWD FILE=[ファイル名] PASSWORD=[SYSユーザのパスワード] ENTRIES=[登録する管理者数]
パスワードファイルへの管理者の追加は、SQL文GRANT (SYSDBA|SYSOPER) TO [ユーザ]の発行によって自動的に行われる。なお、いったん定義した管理者数は変更できず、設定を超えた場合には削除して再作成することになる。
ビューv$pwfile_usersを参照することで、パスワードファイルに登録されているユーザとその権限を参照することができる。
ORACLEでは、パスワードは16文字の数字と英大文字の組み合わせに変換されて内部に格納される。認証時には、パスワードをまず暗号化した上でその結果をサーバに送信するという処理が行われる。
データのインポート時には、暗号化されたパスワードをそのままDBA_USERSテーブルに格納することになる。これを利用し、絶対に生成されることのない暗号(文字数が16字未満、小文字を使用)などを直接指定(IDENTIFIED BY VALUES句を利用)することで、DB認証のログオンが不可能なユーザを作成することができる。