SQL> create user user1 identified by user1;
用户被创建
SQL>
create user user2 identified by user2;
用户被创建
SQL> create role
temp;
角色被创建
SQL> grant connect to temp with grant option;(预定义角色赋给自定义角色)
grant
connect to temp with grant option
ORA-01939: 只能指定 ADMIN
OPTION
SQL> grant connect to temp with admin option;
授予成功
SQL> grant temp to user1 with grant option;(自定义角色赋予用户)
grant
temp to user1 with grant option
ORA-01939: 只能指定 ADMIN OPTION
SQL> grant temp to user1 with admin option;
授予成功
SQL> conn user1/user1;(user1可以登录)
已连接到 Oracle Database 11g Enterprise
Edition Release 11.2.0.1.0
已连接为 user1
SQL> conn system/cqstc;
已连接到 Oracle Database 11g Enterprise Edition
Release 11.2.0.1.0
已连接为 system
SQL> revoke connect from
temp;
撤回成功
SQL> conn user1/user1;(user1不可以登陆,但有temp的角色,角色temp没有角色)
没有登录
SQL> select * from dba_role_privs where
grantee=‘USER1‘;
GRANTEE
GRANTED_ROLE
ADMIN_OPTION
DEFAULT_ROLE
------------------
------------------------------
-----------
------------
USER1
TEMP
YES
YES
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
已连接到 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
已连接为
system
SQL> SHOW user;
User is "system"
SQL> grant
connect to temp with admin option;
授予成功
SQL> select * from dba_role_privs where
grantee=‘USER1‘;
GRANTEE
GRANTED_ROLE
ADMIN_OPTION DEFAULT_ROLE
------------------------------
------------------------------ ------------
------------
USER1
TEMP
YES YES
SQL> select
* from dba_ROLE_privs where
grantee=‘TEMP‘;
GRANTEE
GRANTED_ROLE
ADMIN_OPTION DEFAULT_ROLE
------------------------------
------------------------------ ------------
------------
TEMP
CONNECT
YES YES
SQL>
select * from dba_SYS_privs where
grantee=‘TEMP‘;
GRANTEE
PRIVILEGE
ADMIN_OPTION
------------------------------
---------------------------------------- ------------
SQL> select * from dba_SYS_privs where
grantee=‘USER1‘;
GRANTEE
PRIVILEGE
ADMIN_OPTION
------------------------------
---------------------------------------- ------------
SQL> select * from
dba_SYS_privs where
grantee=‘CONNECT‘;
GRANTEE
PRIVILEGE
ADMIN_OPTION
------------------------------
----------------------------------------
------------
CONNECT
CREATE
SESSION
NO
//都没有对象权限
SQL> select * from dba_TAB_privs where
grantee=‘CONNECT‘;
GRANTEE
OWNER
TABLE_NAME
GRANTOR
PRIVILEGE
GRANTABLE HIERARCHY
------------------------------
------------------------------ ------------------------------
------------------------------ ----------------------------------------
SQL> select * from dba_TAB_privs where
grantee=‘USER1‘;
GRANTEE
OWNER
TABLE_NAME
GRANTOR
PRIVILEGE
GRANTABLE HIERARCHY
------------------------------
------------------------------ ------------------------------
------------------------------ ----------------------------------------
SQL> select * from dba_TAB_privs where
grantee=‘TEMP‘;
GRANTEE
OWNER
TABLE_NAME
GRANTOR
PRIVILEGE
GRANTABLE HIERARCHY
------------------------------
------------------------------ ------------------------------
------------------------------ ----------------------------------------
SQL> conn user1/user1;(user1可以登录,有temp角色)
已连接到 Oracle Database
11g Enterprise Edition Release 11.2.0.1.0
已连接为 user1
SQL> grant connect to user2;
授予成功
SQL> conn
user2/user2;(user2可以登录)
已连接到 Oracle Database 11g Enterprise Edition Release
11.2.0.1.0
已连接为 user2
SQL> select * from
user_role_privs;
USERNAME
GRANTED_ROLE
ADMIN_OPTION DEFAULT_ROLE OS_GRANTED
------------------------------
------------------------------ ------------ ------------
----------
USER2
CONNECT
NO
YES NO
SQL> conn
system/cqstc;
已连接到 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
已连接为 system
SQL> revoke connect from
temp;
撤回成功
SQL> conn
user1/user1;(user1不可以登录)
没有登录
SQL> conn
user2/user2;(user2可以登录)
已连接到 Oracle Database 11g Enterprise Edition Release
11.2.0.1.0
已连接为 user2
SQL> conn system/cqstc;
已连接到 Oracle Database 11g Enterprise Edition
Release 11.2.0.1.0
已连接为 system
SQL> revoke temp from
user1;
撤回成功
SQL> conn user2/user2;(user2可以登录)
已连接到 Oracle
Database 11g Enterprise Edition Release 11.2.0.1.0
已连接为 user2
SQL>
conn user1/user1;(USRE1不可以登陆)
没有登录
SQL> conn system/cqstc;
已连接到
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
已连接为
system
SQL> select* from dba_role_privs where
grantee=‘USER1‘;
GRANTEE
GRANTED_ROLE
ADMIN_OPTION DEFAULT_ROLE
------------------------------
------------------------------ ------------ ------------
SQL> select*
from dba_role_privs where
grantee=‘TEMP‘;
GRANTEE
GRANTED_ROLE
ADMIN_OPTION DEFAULT_ROLE
------------------------------
------------------------------ ------------ ------------
SQL> select*
from dba_role_privs where
grantee=‘USER2‘;
GRANTEE
GRANTED_ROLE
ADMIN_OPTION DEFAULT_ROLE
------------------------------
------------------------------ ------------
------------
USER2
CONNECT
NO
YES
SQL>