測試資料庫角色role,使用set role命令啟用角色,設定資料庫使用者的預設角色
建立角r1和r2,其中r2通過口令驗證,我設定的口令是oracle
SQL> conn system/oracle
Connected.
SQL> create role r1;
Role created.
SQL> create role r2 identified by oracle;
Role created.
給這兩個角色授權,其中r2的許可權包含r1的許可權,也就是說r2的許可權高一些
SQL> grant create session,create table,create view to r1;
Grant succeeded.
SQL> grant create session,create table,create view,create procedure to r2;
Grant succeeded.
建立使用者tj,並把兩個角色授予使用者,預設情況下,當使用者登陸時,兩個角色都會生效。
SQL> create user tj identified by tj
2 quota 10m on users;
User created.
SQL> grant r1,r2 to tj;
Grant succeeded.
SQL> conn tj/tj
Connected.
SQL> select * from session_privs;
PRIVILEGE
------------------------------
CREATE SESSION
CREATE TABLE
CREATE VIEW
CREATE PROCEDURE
SQL> select * from session_roles;
ROLE
--------------------------------------------
R1
R2
修改tj使用者的預設角色,只讓r1在登陸的時候生效
SQL> conn system/oracle
Connected.
SQL> alter user tj default role r1;
User altered.
SQL> conn tj/tj
Connected.
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
R1
SQL> select * from session_privs;
PRIVILEGE
------------------------------
CREATE SESSION
CREATE TABLE
CREATE VIEW