【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