我有一个模式'TEST',该模式有自己的表空间'TEST'。但是当我在 USERS 表空间上创建索引时,它就创建了。如何限制在 ORACLE 数据库中使用 USERS 表空间?
CREATE UNIQUE INDEX "TEST"."INDEX1" ON "TEST"."TESTTABLE" ("TESTNO")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"
它成功了,我希望 TEST 用户不能在 USERS 表空间上创建任何对象。它有自己的 TEST 表空间。有什么配置吗?用户应该使用 TABLESPACE "TEST" 而不是 TABLESPACE "USERS" 吗?
用户
TEST
可能拥有在表空间UNLIMITED TABLESPACE
上定义的特权或配额USERS
。要撤销它们:如果用户拥有
UNLIMITED TABLESPACE
未定义配额的权限,则需要在TEST
表空间上定义配额,以便用户在执行上述命令后再次使用:+1 为 Balazs 的回答,并想在这里分享一个场景。
如果您将
RESOURCE
角色授予任何用户,则该用户将获得UNLIMITED TABLESPACE
特权(12c 之前),该特权允许用户在任何表空间上创建他/她的对象。从用户撤销权限后,您仍然可以CREATE TABLE
在表空间上创建索引(您有权限),但是您不能在其上插入数据,因为您应该有配额来执行此操作。USERS
UNLIMITED TABLESPACE
TEST
这是演示: