Oracleのロール(ROLE)から権限を削除するSQL
Oracleはロール(ROLE)に割り当てた権限を削除することができます。
ロールから権限を削除するSQLは、「REVOKE~」を使います。
ロールから権限を削除する
-- ロールからシステム権限を削除する REVOKE {権限}FROM {ロール}; -- ロールからオブジェクト権限を削除する REVOKE {権限}ON {オブジェクト} FROM {ロール};
ロールから権限を削除するには、システム権限とオブジェクト権限では若干SQLが異なります。オブジェクト権限はオブジェクトまで指定する必要があります。
例1. ロールからシステム権限を削除する
-- ROLE1からcreate table権限を削除する REVOKE create table FROM role1;
こちらはシステム権限を削除するパターンです。ここでは「role1」ロールから「create table権限」を削除しました。
例2. ロールからシステム権限を削除する(複数パターン)
-- ROLE1,ROLE2からcreate table権限、drop table権限を削除する REVOKE create table,drop table FROM role1,role2;
ここでは「role1」「role2」という2つのロールから「create table権限」「drop table権限」の2つの権限を削除しました。
例3. ロールからオブジェクト権限を削除する
-- ROLE1からtable1のinsert権限を削除する REVOKE insert ON table1 FROM role1;
こちらはオブジェクト権限を削除するパターンです。ここでは「role1」から「table1」の「insert権限」を削除しました。
例4. ロールからオブジェクト権限をすべて削除する
-- ROLE1からtable1の権限をすべて削除する REVOKE all ON table1 FROM role1;
ここでは「ROLE1」から「table1」のオブジェクト権限を全て削除しました。オブジェクト権限を指定する箇所で「all」にすると全権限が削除できます。
以上、Oracleのロール(ROLE)から権限を削除するSQLでした。
コメント