ORACLEMASTER 備忘録7(7/10)
続き
データベース操作のための権限付与
データベースへ接続するにはCREATE SESSION権限が必要であるは先述したが、それ以外にも、データベースからデータを取り出したり、データベースに何らかのオブジェクト(表や索引などを作成するには、それぞれの操作を実行するための「権限」が必要である。
そのため、データベース管理者は各ユーザーアカウントに対して、操作に必要な権限を付与する必要がある。
データベースにおける権限
権限は、“ユーザーによるデータベース操作を制御するために使用する”権限を付与することで、各ユーザーのデータベースに対する操作を一つ一つ制御できる。
例えば、データベースに接続するためには「CREATE SESSION」システム権限が必要であるし、表を作成するには「CREATE TABLE」システムの権限が必要である。また、表に対してのSELECT文を実行するには、その表に対しての「SELECT」オブジェクト権限が必要である。
権限の種類
権限にはシステム権限とオブジェクト権限の2種類がある。
・システム権限:
“特定のデータベース操作の実行”を許可するために使用する。例えば、表を作成するためには「CREATE TABLE」システム権限が必要。システム権限は常に管理者が付与する。地祇のようなシステム権限がある。
CREATE SESSION
CREATE TABLE
・オブジェクト権限:
“特定のデータベースオブジェクトへのアクセス”を制御するために使用する。例えば、AさんのEMP表に対してSELECT文を実行したい場合は、「SELECT ON A.emp」オブジェクト権限が必要。次のようなオブジェクト権限がある。
SELECT ON スキーマ名.オブジェクト名
INSERT ON スキーマ名.オブジェクト名
管理権限
データベースの作成やインスタンスの起動/停止の実行、バックアップ/リカバリといった、特別な管理操作を実行するための権限は、通常のシステム権限とオブジェクト権限では付与できない。この特別な管理権限は「SYSDBA」「SYSOPER」という特別なシステム権限によって付与される。
・SYSDBAシステム権限:
すべての権限を持つデータベース管理者用のシステム権限
・SYSOPERシステム権限:
基本的な管理タスクを実行するユーザー用のシステム権限。インスタンスの起動/停止はできるが、データベースの作成やユーザーデータの表示などはできない。
また、Oracle Database 12cからは「SYSBACKUP」「SYSDG」および「SYSKM」システム権限を使用できるようになった。Oracle Database 11g以前は、これらの操作を行うためにSYSDBAシステム権限を使用していた。
SYSBACKUPシステム権限:バックアップおよびリカバリ操作実行
SYSDGシステム権限:Data Guard操作の実行
SYSKMシステム権限:透過的データ暗号化キーストア操作の実行