千家信息网

谈谈Oracle 数据库的系统权限UNLIMITED TABLESPACE

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,谈谈Oracle 数据库的系统权限UNLIMITED TABLESPACE作者:赵全文 网名:guest前日上午,开发同学反馈,应用程序在连接一套Oracle 11.2.0.4.0数据库的生产用户时,
千家信息网最后更新 2026年11月03日谈谈Oracle 数据库的系统权限UNLIMITED TABLESPACE

谈谈Oracle 数据库的系统权限UNLIMITED TABLESPACE

作者:赵全文 网名:guest

前日上午,开发同学反馈,应用程序在连接一套Oracle 11.2.0.4.0数据库的生产用户时,一直报"无操作表空间"的权限。于是,我赶紧连到SQLPLUS里进行查看该用户具有什么样的权限(包括系统权限、角色权限和对象权限),没有发现什么异常。大家都知道,一般在建立用户以后,都会给CONNECT和RESOURCE的角色权限。然后,我连到其它无报错的另一套Oracle 11.2.0.4.0数据库的生产用户上查看,两套数据库进行对比,发现报错的那套数据库没有"UNLIMITED TABLESPACE"的系统权限,给授予了该系统权限以后,又和开发同学联系,他说已经正常了。

鉴于以上的故障处理,下面我们来看一看,Oracle数据库里的几个角色和用户是否具有UNLIMITED TABLESPACE的系统权限?

1.查看3个角色,CONNECT、RESOURCE和DBA。

(1)查看CONNECT角色,见下图,发现这个角色只具有CREATE SESSION的系统权限。


(2)查看RESOURCE角色,见下图,发现这个角色具有8个系统权限,但是没有发现UNLIMITED TABLESPACE的系统权限。


(3)查看DBA角色,见下图,发现该角色具有的系统权限更多,我对PRIVILEGE的列进行了降序处理,以U开头的系统权限都显示在了最前面,但并没有发现UNLIMITED TABLESPACE。

2.查看2个用户,SYS和SYSTEM。

(1)查看SYS用户,见下图,发现SYS用户是具有UNLIMITED TABLESPACE的系统权限。

(2)查看SYSTEM用户,见下图,发现SYSTEM用户也具有UNLIMITED TABLESPACE的系统权限。

从上面的查看,我们可以得出如下结论,

  • 角色CONNECT、RESOURCE和DBA都不具有UNLIMITED TABLESPACE的系统权限;

  • 用户SYS和SYSTEM都具有UNLIMITED TABLESPACE的系统权限。

接下来,我们再看看,3个角色CONNECT、RESOURCE和DBA具有什么样的角色权限?

1.角色CONNECT和RESOURCE,见下图,发现没有任何的角色权限。

2.角色DBA,见下图,发现该角色具有很多的角色权限。

最后,我们在测试库创建一个表空间TEST和一个用户TEST,并设置表空间TEST为用户TEST的默认表空间,授予CONNECT和RESOURCE的角色权限,观察该用户具有什么样的系统权限?操作步骤如下,

(1)查看数据库版本,如下图,

(2)创建表空间TEST,见下图,

(3)创建用户TEST,见下图,

(4)给用户TEST授予CONNECT的角色权限,并查看该用户具有的系统权限,见下图,发现并没有什么系统权限。

(5)给用户TEST授予RESOURCE的角色权限,并查看该用户具有的系统权限,见下图,居然发现具有了UNLIMITED TABLESPACE的系统权限。

从这个操作和前面的演示可以得出,RESOURCE角色本身没有UNLIMITED TABLESPACE的系统权限,但是给普通用户授予了该角色,就使得该用户默认具有了UNLIMITED TABLESPACE的系统权限。带着这个疑问,查了一下Google,发现AskTom这个网站的回答很权威,而且很有说服力。见操作步骤,如下图,

如上,有人提问Tom Kyte大师,为什么RESOURCE角色本身没有UNLIMITED TABLESPACE的系统权限,但是给普通用户授予了RESOURCE的角色,该用户就具有了UNLIMITED TABLESPACE的系统权限呢?

大师是这样回答的,那个UNLIMITED TABLESPACE的系统权限已经被硬编码到RESOURCE角色中了,是特殊的一个权限。见下图所示,

下面还有来自印度的Haroon大师给出了评论,他是这样阐述的,在RESOURCE角色里,UNLIMITED TABLESPACE是一个隐藏的系统权限,它在Oracle 12.1.0.1的版本中已经修复了这个bug,并且在12.1.0.1中,创建的普通用户在授予RESOURCE的角色以后,默认不具有UNLIMITED TABLESPACE的系统权限,所以在撤销UNLIMITED TABLESPACE的权限时会报错,提示没有授予过该权限,见下图红色方框描述,

下面把Tom Kyte大师的工作经历show一下,以作为我继续研究Oracle的源动力和精神支柱。

(6)给用户TEST授予DBA的角色权限,查看用户具有的系统权限,再将用户的DBA角色权限撤销,再次查看用户具有的系统权限有哪些?见下图操作,

从上面两图可以得出,DBA的角色权限杀伤力很大呀,授予的时候,没什么影响,撤销的时候,就把原先的UNLIMITED TABLESPACE的系统权限悄悄的给收回了,感觉好恐怖哟!所以告诫大家,一定不要给普通用户授予DBA的角色权限,如果曾经授予过,再撤销以后,一定要给普通用户单独授予UNLIMITED TABLESPACE的系统权限或重新授予一次RESOURCE的角色权限。见下图所示,

或




如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:guestart的DBA学习笔记,您的支持是对我最大的鼓励!

权限 角色 系统 用户 下图 数据 数据库 普通 空间 大师 同学 时候 步骤 版本 处理 开发 生产 很大 特殊 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技 深圳九邦互联网科技有限公司 杭州互联网科技公司 郑州华宇互联网科技 掌上梦互联网科技 互联网科技美容 互联网科技热点资讯 移动互联网科技股 昭通互联网科技选哪家 未来五年的互联网科技 山东有哪些互联网科技公司 元气玛特互联网科技公司是外包吗 杭州披云加互联网科技有限公司 互联网科技年终奖 互联网安防科技感 工业互联网科技成果转化 同城互联网络科技 广州三三互联网科技有限公司 众联互联网络科技 杭州融税互联网科技有限公司 湖南永感互联网科技有限公司 互联网科技公司电话 互联网科技logo设计 互联网 科技服务平台 广州恒生互联网科技有限 乌鲁木齐新华智原互联网科技学校 四川慕妮娅互联网科技有限公司 互联网科技公司营业执照怎么办理 为客找房互联网科技公司怎么样 互联网的黑科技实验室
0