早速だが、
oracleデータベースを使用していて、なんとなく下記のユーザやコマンド
を当たり前のように使用していないだろうか?
- sysユーザ
- sqlplus / as sysdba
- Systemユーザ etc
上記をなんとなく使用ているのは、きわめて危険である。
上記を理解するために、全4回に分けて、理解を深めてほしい。
第一回のトピックは、『DBAロール』についてである。
目次
- oracle ロールとは
- DBAロールの内容
- まとめ
1. oracle ロールとは
DBAロールのお話をする前に、oracleにおけるロールという用語を復習しよう。
(ロールについて理解できている人は読み飛ばしてください)
MySQLやPostgreSQL、各種RDBMSを使用していると 『ロール』 という用語は、度々聞くと思う。
それぞれのRDBMSでの 『ロール』 は、少し意味が違ってくる。
oracleにおける 『ロール』 は、一言でいうと
- 権限の詰め合わせセットである。
oracleでは、何をするにしても権限が必要になってくる。
- インスタンスへのアクセス権限
- 別スキーマへアクセスする際にオブジェクト権限
- V$ビューへのアクセス権限
- インデックスを作成するための権限 etc
毎回ユーザを管理する側としては、毎回一つ一つの権限を各ユーザに付与するのは、とてもめんどくさい。。
そこで、役に立つのが、ロールである。
イメージ図を下記に示す。
上記のように、複数の権限をまとめて付与したいといったときにロールは便利である。
2. DBAロールの内容
DBAロールは、基本的にDBのすべてのオブジェクトに対してなんでもできるロールである。
実際のロールの中身(詰め込まれている権限)は、以下の通りである。
select ROLE,PRIVILEGE from role_sys_privs where role = 'DBA' order by 2
ROLE PRIVILEGE
------------------------------ ----------------------------------------
DBA ADMINISTER ANY SQL TUNING SET
DBA ADMINISTER DATABASE TRIGGER
DBA ADMINISTER RESOURCE MANAGER
DBA ADMINISTER SQL MANAGEMENT OBJECT
DBA ADMINISTER SQL TUNING SET
DBA ADVISOR
DBA ALTER ANY ANALYTIC VIEW
DBA ALTER ANY ASSEMBLY
DBA ALTER ANY ATTRIBUTE DIMENSION
DBA ALTER ANY CLUSTER
DBA ALTER ANY CUBE
DBA ALTER ANY CUBE BUILD PROCESS
DBA ALTER ANY CUBE DIMENSION
DBA ALTER ANY DIMENSION
DBA ALTER ANY EDITION
DBA ALTER ANY EVALUATION CONTEXT
DBA ALTER ANY HIERARCHY
DBA ALTER ANY INDEX
DBA ALTER ANY INDEXTYPE
DBA ALTER ANY LIBRARY
DBA ALTER ANY MATERIALIZED VIEW
DBA ALTER ANY MEASURE FOLDER
DBA ALTER ANY MINING MODEL
DBA ALTER ANY OPERATOR
DBA ALTER ANY OUTLINE
DBA ALTER ANY PROCEDURE
DBA ALTER ANY ROLE
DBA ALTER ANY RULE
DBA ALTER ANY RULE SET
DBA ALTER ANY SEQUENCE
DBA ALTER ANY SQL PROFILE
DBA ALTER ANY SQL TRANSLATION PROFILE
DBA ALTER ANY TABLE
DBA ALTER ANY TRIGGER
DBA ALTER ANY TYPE
DBA ALTER DATABASE
DBA ALTER LOCKDOWN PROFILE
DBA ALTER PROFILE
DBA ALTER RESOURCE COST
DBA ALTER ROLLBACK SEGMENT
DBA ALTER SESSION
DBA ALTER SYSTEM
DBA ALTER TABLESPACE
DBA ALTER USER
DBA ANALYZE ANY
DBA ANALYZE ANY DICTIONARY
DBA AUDIT ANY
DBA AUDIT SYSTEM
DBA BACKUP ANY TABLE
DBA BECOME USER
DBA CHANGE NOTIFICATION
DBA COMMENT ANY MINING MODEL
DBA COMMENT ANY TABLE
DBA CREATE ANALYTIC VIEW
DBA CREATE ANY ANALYTIC VIEW
DBA CREATE ANY ASSEMBLY
DBA CREATE ANY ATTRIBUTE DIMENSION
DBA CREATE ANY CLUSTER
DBA CREATE ANY CONTEXT
DBA CREATE ANY CREDENTIAL
DBA CREATE ANY CUBE
DBA CREATE ANY CUBE BUILD PROCESS
DBA CREATE ANY CUBE DIMENSION
DBA CREATE ANY DIMENSION
DBA CREATE ANY DIRECTORY
DBA CREATE ANY EDITION
DBA CREATE ANY EVALUATION CONTEXT
DBA CREATE ANY HIERARCHY
DBA CREATE ANY INDEX
DBA CREATE ANY INDEXTYPE
DBA CREATE ANY JOB
DBA CREATE ANY LIBRARY
DBA CREATE ANY MATERIALIZED VIEW
DBA CREATE ANY MEASURE FOLDER
DBA CREATE ANY MINING MODEL
DBA CREATE ANY OPERATOR
DBA CREATE ANY OUTLINE
DBA CREATE ANY PROCEDURE
DBA CREATE ANY RULE
DBA CREATE ANY RULE SET
DBA CREATE ANY SEQUENCE
DBA CREATE ANY SQL PROFILE
DBA CREATE ANY SQL TRANSLATION PROFILE
DBA CREATE ANY SYNONYM
DBA CREATE ANY TABLE
DBA CREATE ANY TRIGGER
DBA CREATE ANY TYPE
DBA CREATE ANY VIEW
DBA CREATE ASSEMBLY
DBA CREATE ATTRIBUTE DIMENSION
DBA CREATE CLUSTER
DBA CREATE CREDENTIAL
DBA CREATE CUBE
DBA CREATE CUBE BUILD PROCESS
DBA CREATE CUBE DIMENSION
DBA CREATE DATABASE LINK
DBA CREATE DIMENSION
DBA CREATE EVALUATION CONTEXT
DBA CREATE EXTERNAL JOB
DBA CREATE HIERARCHY
DBA CREATE INDEXTYPE
DBA CREATE JOB
DBA CREATE LIBRARY
DBA CREATE LOCKDOWN PROFILE
DBA CREATE MATERIALIZED VIEW
DBA CREATE MEASURE FOLDER
DBA CREATE MINING MODEL
DBA CREATE OPERATOR
DBA CREATE PLUGGABLE DATABASE
DBA CREATE PROCEDURE
DBA CREATE PROFILE
DBA CREATE PUBLIC DATABASE LINK
DBA CREATE PUBLIC SYNONYM
DBA CREATE ROLE
DBA CREATE ROLLBACK SEGMENT
DBA CREATE RULE
DBA CREATE RULE SET
DBA CREATE SEQUENCE
DBA CREATE SESSION
DBA CREATE SQL TRANSLATION PROFILE
DBA CREATE SYNONYM
DBA CREATE TABLE
DBA CREATE TABLESPACE
DBA CREATE TRIGGER
DBA CREATE TYPE
DBA CREATE USER
DBA CREATE VIEW
DBA DEBUG ANY PROCEDURE
DBA DEBUG CONNECT ANY
DBA DEBUG CONNECT SESSION
DBA DELETE ANY CUBE DIMENSION
DBA DELETE ANY MEASURE FOLDER
DBA DELETE ANY TABLE
DBA DEQUEUE ANY QUEUE
DBA DROP ANY ANALYTIC VIEW
DBA DROP ANY ASSEMBLY
DBA DROP ANY ATTRIBUTE DIMENSION
DBA DROP ANY CLUSTER
DBA DROP ANY CONTEXT
DBA DROP ANY CUBE
DBA DROP ANY CUBE BUILD PROCESS
DBA DROP ANY CUBE DIMENSION
DBA DROP ANY DIMENSION
DBA DROP ANY DIRECTORY
DBA DROP ANY EDITION
DBA DROP ANY EVALUATION CONTEXT
DBA DROP ANY HIERARCHY
DBA DROP ANY INDEX
DBA DROP ANY INDEXTYPE
DBA DROP ANY LIBRARY
DBA DROP ANY MATERIALIZED VIEW
DBA DROP ANY MEASURE FOLDER
DBA DROP ANY MINING MODEL
DBA DROP ANY OPERATOR
DBA DROP ANY OUTLINE
DBA DROP ANY PROCEDURE
DBA DROP ANY ROLE
DBA DROP ANY RULE
DBA DROP ANY RULE SET
DBA DROP ANY SEQUENCE
DBA DROP ANY SQL PROFILE
DBA DROP ANY SQL TRANSLATION PROFILE
DBA DROP ANY SYNONYM
DBA DROP ANY TABLE
DBA DROP ANY TRIGGER
DBA DROP ANY TYPE
DBA DROP ANY VIEW
DBA DROP LOCKDOWN PROFILE
DBA DROP PROFILE
DBA DROP PUBLIC DATABASE LINK
DBA DROP PUBLIC SYNONYM
DBA DROP ROLLBACK SEGMENT
DBA DROP TABLESPACE
DBA DROP USER
DBA EM EXPRESS CONNECT
DBA ENQUEUE ANY QUEUE
DBA EXECUTE ANY ASSEMBLY
DBA EXECUTE ANY CLASS
DBA EXECUTE ANY EVALUATION CONTEXT
DBA EXECUTE ANY INDEXTYPE
DBA EXECUTE ANY LIBRARY
DBA EXECUTE ANY OPERATOR
DBA EXECUTE ANY PROCEDURE
DBA EXECUTE ANY PROGRAM
DBA EXECUTE ANY RULE
DBA EXECUTE ANY RULE SET
DBA EXECUTE ANY TYPE
DBA EXECUTE ASSEMBLY
DBA EXPORT FULL DATABASE
DBA FLASHBACK ANY TABLE
DBA FLASHBACK ARCHIVE ADMINISTER
DBA FORCE ANY TRANSACTION
DBA FORCE TRANSACTION
DBA GLOBAL QUERY REWRITE
DBA GRANT ANY OBJECT PRIVILEGE
DBA GRANT ANY PRIVILEGE
DBA GRANT ANY ROLE
DBA IMPORT FULL DATABASE
DBA INSERT ANY CUBE DIMENSION
DBA INSERT ANY MEASURE FOLDER
DBA INSERT ANY TABLE
DBA LOCK ANY TABLE
DBA LOGMINING
DBA MANAGE ANY FILE GROUP
DBA MANAGE ANY QUEUE
DBA MANAGE FILE GROUP
DBA MANAGE SCHEDULER
DBA MANAGE TABLESPACE
DBA MERGE ANY VIEW
DBA ON COMMIT REFRESH
DBA QUERY REWRITE
DBA READ ANY FILE GROUP
DBA READ ANY TABLE
DBA REDEFINE ANY TABLE
DBA RESTRICTED SESSION
DBA RESUMABLE
DBA SELECT ANY CUBE
DBA SELECT ANY CUBE BUILD PROCESS
DBA SELECT ANY CUBE DIMENSION
DBA SELECT ANY DICTIONARY
DBA SELECT ANY MEASURE FOLDER
DBA SELECT ANY MINING MODEL
DBA SELECT ANY SEQUENCE
DBA SELECT ANY TABLE
DBA SELECT ANY TRANSACTION
DBA SET CONTAINER
DBA UNDER ANY TABLE
DBA UNDER ANY TYPE
DBA UNDER ANY VIEW
DBA UPDATE ANY CUBE
DBA UPDATE ANY CUBE BUILD PROCESS
DBA UPDATE ANY CUBE DIMENSION
DBA UPDATE ANY TABLE
DBA USE ANY JOB RESOURCE
DBA USE ANY SQL TRANSLATION PROFILE
235行が選択されました。
DBA(DBの管理者)は、基本運用を行う上で、DBAロールが付与されているユーザを使用する。
3.まとめ
本投稿をまとめると以下の通りである。
- oracleにおけるロールとは、権限の詰め合わせである
- DBAロールは、様々な権限が詰め込まれている
- DBAロールを付与されたユーザは、oracle内のすべてのオブジェクトに対してアクセス可能である