【ORACLE】ロールを付与・取消するSQL

ここではORACLEデータベースで、ユーザまたは別のロールにロールを付与するSQLを紹介しています。

ロールの一覧を確認する方法は↓で紹介しています。
>>【ORACLE】ロールの一覧を確認するSQL

ロールを付与するSQLの基本構文

ユーザまたは別のロールにロールを付与するときはGRANT文を使います。

GRANT文では、付与するロール名とユーザー名(またはロール)を指定します。

GRANT ロール名 TO ユーザー名(またはロール)
[WITH ADMIN OPTION];

・[WITH ADMIN OPTION]を指定することで、ロールを付与されたユーザーがその権限を別のユーザーに付与することが出来ます。

GRANT文を使ったSQLサンプル

GRANT文を使ってロールを1つ付与する方法です。

ロールを1つ付与する方法

次のSQLでは、1行目でTEST_ROLE1ロールをUSER1に付与しています。2行目ではTEST_ROLE1ロールをTEST_ROLE2に付与しています。

GRANT test_role1 TO user1;
GRANT test_role1 TO test_role2;

同時に複数のロールを付与する方法

GRANT文では、同時に複数のロールを付与することが出来ます。複数のロールを付与する場合はロールをカンマ区切りで追加します。

次のSQLでは、USER1にTEST_ROLE1とTEST_ROLE2ロールを付与しています。

GRANT test_role1,test_role2 TO user1;

ロールを取消するSQLの基本構文

ユーザまたはロールに付与されたロールをを取消(剝奪)するときはREVOKE文を使います。

REVOKE文では、取り消したいロール名とユーザー名(またはロール)を指定します。

REVOKE ロール名 FROM ユーザー名(またはロール);

REVOKE文を使ったSQLサンプル

ここからはREVOKE文を使ったSQLサンプルを紹介します。

権限を1つ取り消す方法

REVOKE test_role1 FROM user1;
REVOKE test_role1 FROM test_role2;

権限を複数同時に取り消す方法

REVOKE test_role1,test_role2 FROM user1;

まとめ

ロールの付与はGRANT文、取り消しはREVOKE文を使います。

ロールはユーザーだけでなく、別のロールに対しても付与・取消することが出来ます。

権限については↓でも紹介していますのでぜひ参考にしてください。
【ORACLE】権限とは?システム・オブジェクト権限について
【ORACLE】システム権限の一覧
【ORACLE】オブジェクト権限を付与・取消するSQL
【ORACLE】オブジェクト権限を確認するSQL
【ORACLE】ユーザに付与されている権限を確認するSQL

【ORACLE】ロールに付与されている権限を確認するSQL