谈谈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的系统权限。

wKioL1jOW8LSOWsMAAAyfCSejoc000.png-wh_50


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

wKioL1jOXBLgSXF5AABD2LSw2IQ448.png-wh_50

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

wKiom1jOXE-Dmoa-AABIupzQwbo052.png-wh_50

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

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