oracle文件有哪些特殊权限,关于unlimited talespace特殊权限

近日,研究Oracle的系统权限,发现有个比较特殊的unlimited tablespace 的权限

网上搜索到http://www.itpub.net/viewthread.php?tid=503880 上面的一些说发,

颇有些越看越迷糊的感觉。于是自己在机子上作了个实验。

首先oracle 的版本

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE        10.2.0.1.0        Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

确认resource 的权限

SQL> select * from role_sys_privs where role='RESOURCE';

ROLE                           PRIVILEGE                                ADMIN_OPTION

------------------------------ ---------------------------------------- ------------

RESOURCE                       CREATE SEQUENCE                          NO

RESOURCE                       CREATE TRIGGER                           NO

RESOURCE                       CREATE CLUSTER                           NO

RESOURCE                       CREATE PROCEDURE                         NO

RESOURCE                       CREATE TYPE                              NO

RESOURCE                       CREATE OPERATOR                          NO

RESOURCE                       CREATE TABLE                             NO

RESOURCE                       CREATE INDEXTYPE                         NO

8 rows selected

由于需要连接测试,这里再加一个connect 得权限

SQL> select * from role_sys_privs where role='CONNECT';

ROLE                           PRIVILEGE                                ADMIN_OPTION

------------------------------ ---------------------------------------- ------------

CONNECT                        CREATE SESSION                           NO

-----

----创建一个用户

create user unlimited_test identified by "123456";

先赋一个connect 得权限

grant   connect  to unlimited_test;

切换到unlimited_test用户

SQL> conn unlimited_test/123456@mydb

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

Connected as unlimited_test

查看一下权限

select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADMIN_OPTION

------------------------------ ---------------------------------------- ------------

这里发现没有权限,当然create session已经给用户了,是以role connect 的方式给的,视图统计口径不一样

这个视图里面没有显示出来

切换回sys用户

把resource 赋给用户

SQL> grant resource to unlimited_test;

再切换回unlimited_test用户

查看一下权限

SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADMIN_OPTION

------------------------------ ---------------------------------------- ------------

UNLIMITED_TEST                 UNLIMITED TABLESPACE                     NO

这里就看到unlimited tablespace 这个该死的权限了,前面可以看到resource里面

并没有这个权限,这说明在赋给resource角色的时候,oracle 自动的将unlimited tablespace 这个权限赋给

用户了。但拥有这个权限是否就像链接文章中所说的一样,‘我以SYS用户创建了一个用户,然后授予了这个用户

RESOURCE数据库预定义角色,

这个用户就可以在任意表空间中创建对象了。’

继续试验,在unlimited_test用户中

SQL>  create tablespace unlimited_test datafile '/u01/app/unlimited_test.dbf' size 5m;

create tablespace unlimited_test datafile '/u01/app/unlimited_test.dbf' size 5m

ORA-01031: insufficient privilegesSQL> create table scott.test(x int ,y int);

create table scott.test(x int ,y int)

ORA-01031: insufficient privileges

可以看到根本不是这么回事。无论创建表空间还是其他用户的对象都没有权限。

这也说明了。unlimited tablespace 并不是拥有这个权限就可以“在任意表空间中创建对象了”

查看资料,根据上面的实验,得出结论

系统权限unlimited tablespace 赋给用户,并不是使得用户可以创建自己的表空间和数据文件

拥有这个功能的权限应该是create tablespace 权限,

unlimited tablespace 权限让用户可以为数据库中对应的表空间分配足够的多的物理空间。

可以这么说,unlimited tablespace 和创建对象无关,与空间的分配有关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值