3.17.1 ユーザ権限,スキーマ操作権限,および監査権限の取り消し
HADBユーザに付与されている次の権限を取り消します。
-
ユーザ権限
-
DBA権限
-
CONNECT権限
-
-
スキーマ操作権限
-
スキーマ定義権限
-
-
監査権限
-
監査管理権限
-
監査参照権限
-
- 〈この項の構成〉
(1) 指定形式
REVOKE文::=REVOKE 権限〔,権限〕… FROM 認可識別子〔,認可識別子〕… 〔削除動作〕 権限::={ユーザ権限|スキーマ操作権限|監査権限} ユーザ権限::={DBA|CONNECT} スキーマ操作権限::=SCHEMA 監査権限::={AUDIT ADMIN|AUDIT VIEWER} 削除動作::={CASCADE|RESTRICT}
(2) 指定形式の説明
- ●権限〔,権限〕…
-
権限::={ユーザ権限|スキーマ操作権限|監査権限}
取り消す権限を指定します。同じ権限を重複して指定できません。
- ユーザ権限::={DBA|CONNECT}
-
ユーザ権限を取り消す場合に指定します。
-
DBA
DBA権限を取り消す場合に指定します。
-
CONNECT
CONNECT権限を取り消す場合に指定します。
-
- スキーマ操作権限::=SCHEMA
-
スキーマ操作権限を取り消す場合に指定します。
-
SCHEMA
スキーマ定義権限を取り消す場合に指定します。
-
- 監査権限::={AUDIT ADMIN|AUDIT VIEWER}
-
監査権限(監査管理権限または監査参照権限)を取り消す場合に指定します。
-
AUDIT ADMIN
監査管理権限を取り消す場合に指定します。
-
AUDIT VIEWER
監査参照権限を取り消す場合に指定します。
-
- ●FROM 認可識別子〔,認可識別子〕…
-
権限を取り消すHADBユーザの認可識別子を指定します。最大128個の認可識別子を指定できます。
認可識別子の指定規則を次に示します。
-
英小文字を指定する場合は,認可識別子を二重引用符(")で囲んで指定してください。二重引用符で囲まないと,英小文字を指定しても英大文字が指定されたと見なされます。
(例)REVOKE DBA FROM adbuser01
この場合,認可識別子にADBUSER01が指定されたと見なされます。
-
認可識別子は名前として指定するため,二重引用符(")で囲んで指定することを推奨します。
認可識別子の指定規則の詳細については,「6.1.4 名前の指定」を参照してください。
-
- ●削除動作
-
削除動作::={CASCADE|RESTRICT}
この指定は,スキーマ定義権限を取り消す場合に限り有効となります。
スキーマ定義権限を取り消すHADBユーザがスキーマを所有している場合に,スキーマ定義権限を取り消すかどうかを指定します。削除動作の各指定の説明を次の表に示します。
削除動作の指定
説明
ほかのスキーマのビュー表の扱い
ほかのスキーマの外部キーの扱い
削除動作の指定を省略した場合
処理対象のHADBユーザがスキーマを所有している場合でも,スキーマ定義権限を取り消します。このとき,処理対象のHADBユーザが所有しているスキーマも削除されます。
REVOKE文の実行によって削除される表に依存するビュー表(ほかのスキーマのビュー表)が無効化されます。
REVOKE文の実行によって削除される表を被参照表とする外部キー(ほかのスキーマの外部キー)も削除されます。
CASCADEを指定した場合
REVOKE文の実行によって削除される表に依存するビュー表(ほかのスキーマのビュー表)も削除されます。
RESTRICTを指定した場合
処理対象のHADBユーザがスキーマを所有している場合は,REVOKE文をエラーにします。
REVOKE文がエラーになるため,ほかのスキーマのビュー表に影響はありません。
REVOKE文がエラーになるため,ほかのスキーマの外部キーに影響はありません。
(3) 実行時に必要な権限
-
ユーザ権限およびスキーマ操作権限を取り消すREVOKE文を実行する場合
DBA権限およびCONNECT権限が必要になります。
-
監査権限を取り消すREVOKE文を実行する場合
監査管理権限およびCONNECT権限が必要になります。
(4) 規則
-
HADBサーバに接続中の認可識別子のHADBユーザのCONNECT権限を取り消すことはできません。
-
自分自身に付与されているDBA権限およびCONNECT権限を取り消すことはできません。自分自身に付与されているスキーマ定義権限を取り消すことはできます。
-
複数の認可識別子を指定した場合,REVOKE文の実行でエラーが発生したときは,すべてのHADBユーザの権限取り消しが無効になります。
-
監査権限を持っているHADBユーザのCONNECT権限およびスキーマ定義権限を取り消すことはできません。
-
監査管理権限を持っているHADBユーザは,次の権限を取り消すことができます。
-
ほかのHADBユーザが持っている監査管理権限または監査参照権限
-
自分が持っている監査管理権限または監査参照権限
-
-
監査権限を取り消す場合は,監査証跡機能が有効である必要があります。
ただし,次に示す条件をすべて満たす場合に限り,監査証跡機能が無効なときに監査管理権限を取り消すことができます。
-
監査参照権限を持っているHADBユーザがいない
-
監査管理権限を持っているHADBユーザが自分だけである
-
-
監査証跡機能が有効な場合に,監査管理権限とCONNECT権限の両方を持っているHADBユーザが1人しかいないときは,そのHADBユーザの監査管理権限を取り消すことはできません。
(5) 例題
- 例題1
-
HADBユーザADBUSER01のDBA権限,CONNECT権限,およびスキーマ定義権限を取り消します。
REVOKE DBA,CONNECT,SCHEMA FROM "ADBUSER01" CASCADE
- 例題2
-
HADBユーザADBUSER02およびADBUSER03のCONNECT権限およびスキーマ定義権限を取り消します。ただし,ADBUSER02,ADBUSER03がスキーマを所有している場合,REVOKE文をエラーにします。
REVOKE CONNECT,SCHEMA FROM "ADBUSER02","ADBUSER03" RESTRICT
例えば,ADBUSER02はスキーマを所有していて,ADBUSER03はスキーマを所有していない場合に上記のREVOKE文を実行すると,ADBUSER02およびADBUSER03の両方に対して,REVOKE文をエラーにします。
- 例題3
-
HADBユーザADBAUDITADMINの監査管理権限を取り消します。
REVOKE AUDIT ADMIN FROM "ADBAUDITADMIN"
- 例題4
-
HADBユーザADBAUDITORの監査参照権限を取り消します。
REVOKE AUDIT VIEWER FROM "ADBAUDITOR"