Oracleでシステム権限をもつユーザーを取得する(DBAロール・SYSDBA権限)

Oracleのシステム権限は2つあります。DBAロール・SYSDBA権限です。

Oracleのシステム権限(DBAロール・SYSDBA権限)についての解説とシステム権限をもつユーザーを取得します。

Oracleのシステム権限 DBAロール・SYSDBA権限とは

Oracleのシステム権限はおもに2つあります。システム権限が2つあるのがややこしいですね。

  1. DBAロール
  2. SYSDBA権限

DBAロール

「DBAロール」はDBA(Database Administrator)、いわゆる「データベース管理者」という名前からわかるように、管理者の権限をもつロールです。

この「DBAロール」がいわゆるシステム権限です。

SYSDBA権限

Oracleには「DBAロール」以外に「SYSDBA権限」というシステム権限もあります。実はこの「SYSDBA権限」は前述のDBAロールよりさらに強力な権限なのです。

具体的にいうと、データベースの起動やシャットダウンができます。

Oracleデータベースが起動していない状態でも操作できるのがSYSDBA権限です。このSYSDBA権限がOracleの最上位権限になります。

 

Oracleのシステム権限を持つユーザーを取得する

DBAロールを持つユーザーを取得する

-- DBAロール検索 
SELECT * FROM DBA_ROLE_PRIVS  
WHERE GRANTED_ROLE ='DBA';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
SYS DBA YES YES
SYSTEM DBA YES YES
sys_user DBA NO YES

OracleでDBAロールをもつユーザーは「dba_role_privs 」で検索できます。

「SYS」と「SYSTEM」はDBAロールをもつ、お馴染みのOracleデフォルトのユーザーですね。

SYSDBA権限をもつユーザーを取得する

-- SYSDBA権限検索
SELECT * FROM V$PWFILE_USERS;
USERNAME SYSDBA SYSOPER SYSASM
SYS TRUE TRUE FALSE
SYSDBA_USER TRUE FALSE FALSE

OracleのSYSDBA権限はOracleの最上位の権限です。SYSDBA権限は「V$PWFILE_USERS」で検索できます。

「SYS」はSYSDBA権限をもつ、お馴染みのOracleデフォルトのユーザーですね。

 

以上、Oracleでシステム権限(DBAロール・SYSDBA権限)をもつユーザーを取得する方法でした。

コメント