【Bronze DBA】権限まとめ
Bronze DBA の範囲でユーザーの権限についてまとめました。
権限とは
Oracleデータベースのユーザーは何をするにも「権限」が必要。
権限にはシステム権限
とオブジェクト権限
の2種類がある。
権限 | 内容 | 例 |
---|---|---|
システム権限 | データベースに対する操作 | ・データベースへのログイン ・表の作成 ・表領域の作成 ・ユーザーの作成など |
オブジェクト権限 | オブジェクトに対する操作 | ・検索 ・行の挿入 ・値の更新 ・行の削除など ※自分が所有するオブジェクトに対しては全権限が自動的に付与される |
権限の付与方法
権限を付与するには GRANT
コマンド、
権限を剥奪するには REVOKE
コマンドを使用する。
【権限を付与するための権限】
①GRANT
コマンドにはADMINオプション
とGRANTオプション
がある。
ADMINオプション
付与されたシステム権限を別のユーザーに付与できる権限
GRANTオプション
付与されたオブジェクト権限を別のユーザーに付与できる権限
②全ての権限を他のユーザーに付与できる権限が存在する。
GRANT ANY PRIVILEGE システム権限
全てのシステム権限を他のユーザーに付与できる権限
GRANT ANY OBJECT PRIVILEGE オブジェクト権限
全てのオブジェクト権限を他のユーザーに付与できる権限
GRANT <権限名> TO <ユーザー名>;
REVOKE <権限名> FROM <ユーザー名>;
ロールとは
ロールとは、複数の権限をまとめたもの。
まとめることで、権限の付与が簡素化される。
ロールの付与や剥奪も権限と同様に GRANT
REVOKE
コマンドで実行する。
構文についても権限と同様の形。
事前定義済みロール
主なOracleデータベースが自動的に作成するロールは以下の通り。
ロール | 内容 |
---|---|
CONNECT | データベースへの接続権限のみ。 Oracle Enterprise Managerでユーザー作成時に自動的に付与。 |
RESOURCE | スキーマオブジェクトの作成、変更、削除が可能となるロール。 |
DBA | デフォルトでSYS, SYSTEMユーザーに付与されるロール。 全システム権限が含まれる。 インスタンスの起動/停止を含まない。 |
SELECT_CATALOG_ROLE | データディクショナリ内のオブジェクトに対するSELECT権限。 |
EM_EXPRESS_BASIC | EM Expressに接続して読み取り専用で表示する権限。 |
EM_EXPRESS_ALL | EM Expressに接続して、全機能を利用できる権限。 EM_EXPRESS_BASICを含む。 |
管理権限
SYSDBA権限、SYSOPER権限は管理権限
と呼ばれる。
※管理権限はシステム権限の一部だが、特別な働きを持つので、別途「管理権限」として紹介する。
これらの権限では、インスタンスの起動が行える
→ データベースがオープンしていない状態で、データベースへの接続が実行できる。
権限 | 内容 |
---|---|
SYSDBA権限 | ・インスタンスの起動と停止を含む ・バックアップとリカバリを含む ・全ての管理操作を実行可能 ・全てのユーザーのデータにアクセスできる ・SYSユーザーで接続 |
SYSOPER権限 | ・インスタンスの起動と停止を含む ・バックアップとリカバリを含む ・ほぼ全ての管理操作を実行可能 ・ユーザーのデータにアクセスできない ・PUBLICユーザーで接続 |
留意事項
SYSユーザー
SYSDBA権限(管理権限)を持つ。
DBAロールを持つ。
管理権限を持つので、インスタンス停止時にアクセス可能。
SYSTEMユーザー
DBAロールを持つ。
管理権限を持たないので、一般ユーザー扱いとなる(インスタンス停止時にアクセス不可)。
※SYSDBA権限とは
データベースの作成、起動、停止、バックアップ、リカバリなどを含む全権限。
データベースがオープンでない時でもアクセス可能。
ログイン時に AS SYSDBA
と明記が必要。
デフォルトのスキーマ(SYS)に接続する。
※DBAロールとは
ユーザーの作成、権限付与、ロールの作成、付与、スキーマの管理機能などが実行できる。
データベースの起動・停止は含まれない。
デフォルトでSYS、SYSTEMユーザーに付与される。
参考文献
『オラクルマスター教科書 bronze dba oracle database fundamentals』
Discussion