首页 > 解决方案 > 使用组织索引创建表时“无特权”

问题描述

我正在运行 Oracle 11.g,并且我使用的 id 具有 DBA 角色(据说是完全访问权限)。

当我尝试在另一个模式下创建表时,它工作正常。但是,当我尝试使用组织索引创建表时,系统提示我

ORA-01950: no privileges on tablespace

我仔细检查了我的 id 有无限的表空间。我的 ID 和目标模式都在同一个表空间中。

补充信息:我能够在我自己的架构下运行带有组织索引的相同 creat table 语句。

标签: oracle11gschemacreate-tableprivilegestablespace

解决方案


创建对象可能需要两个权限:您的用户需要创建对象的权限,而架构所有者需要使用与该对象相关的资源的权限。因此,虽然您能够在另一个模式中创建表,但该模式还需要将数据写入相关表空间的权限:

alter user $username quota unlimited on $tablespace;

这种方法比授予UNLIMITED TABLESPACE角色更安全。该角色授予的权限超出了必要的范围,如果稍后有人尝试清除权限,则撤销该角色也会撤消个人权限,如本文所述


推荐阅读