系统权限UNLIMITED TABLESPACE为什么如此特殊?

 

1、系统权限UNLIMITED TABLESPACE 不能被授予role,可以被授予用户!

2、UNLIMITED TABLESPACE 没有被包括在resource role中,但是UNLIMITED TABLESPACE 随着resource的授出而被授予用户的。

3、UNLIMITED TABLESPACE 不能伴随着resource被授予role而授予用户。


1、测试1

系统权限UNLIMITED TABLESPACE 不能被授予role,可以被授予用户!

SQL> create role rl1 ;

角色已创建。

SQL> create user test identified by test;

用户已创建。

SQL> grant connect , create table , unlimited tablespace to rl1;
grant connect , create table , unlimited tablespace to rl1
*
第 1 行出现错误:
ORA-01931: 无法将 UNLIMITED TABLESPACE 授予角色

SQL> grant connect , create table to rl1;

授权成功。

SQL> grant rl1 , unlimited tablespace to test;

授权成功。

SQL>

2、测试2

系统权限UNLIMITED TABLESPACE 没有被包括在resource role中,但是UNLIMITED TABLESPACE 随着resource的授出而被授予用户。

SQL> revoke rl1 , unlimited tablespace from test;

撤销成功。

SQL> grant connect , create table to test;

授权成功。

SQL> connect test/test
已连接。
SQL> create table t(id int);
create table t(id int)
*
第 1 行出现错误:
ORA-01950: 对表空间 'USERS' 无权限

SQL> connect xys/manager
已连接。
SQL> grant resource to test;

授权成功。

SQL> connect test/test
已连接。
SQL> create table t(id int);

表已创建。

SQL> CONNECT XYS/MANAGER
已连接。
SQL> select * from dba_sys_privs where grantee='TEST';

GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
TEST CREATE TABLE NO
TEST UNLIMITED TABLESPACE NO

SQL> select * from dba_sys_privs where grantee='RESOURCE';

GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE INDEXTYPE NO
RESOURCE CREATE TABLE NO

已选择8行。

SQL>

3、测试3

UNLIMITED TABLESPACE 不能伴随着resource被授予role而授予用户,具体一点就是resource被授予了rl1 role,把rl1授予了test用户,但是此时UNLIMITED TABLESPACE 没有被授予test用户!

SQL> create role rl1;

角色已创建。

SQL> create user test identified by test;

用户已创建。

SQL> grant connect,resource to rl1;

授权成功。

SQL> select * from dba_role_privs where grantee='RL1';

GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
RL1 CONNECT NO YES
RL1 RESOURCE NO YES

SQL> grant rl1 to test;

授权成功。

SQL> connect test/test
已连接。
SQL> create table t(id int);
create table t(id int)
*
第 1 行出现错误:
ORA-01950: 对表空间 'USERS' 无权限

SQL> connect xys/manager
已连接。
SQL> grant unlimited tablespace to test;

授权成功。

SQL> connect test/test
已连接。
SQL> create table t(id int);

表已创建。

SQL>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值