Oracle 限制用户使用 USERS 表空间

Ahm*_*buğ 2 oracle oracle-11g-r2 oracle-12c

我有一个架构“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"
Run Code Online (Sandbox Code Playgroud)

它成功了,我希望 TEST 用户不能在 USERS 表空间上创建任何对象。它有自己的 TEST 表空间。有什么配置吗?用户应该使用 TABLESPACE "TEST" 而不是 TABLESPACE "USERS" 吗?

Bal*_*app 6

用户TEST可能具有UNLIMITED TABLESPACEUSERS表空间上定义的特权或配额。要撤销它们:

revoke unlimited tablespace from test;
alter user test quota 0 on users;
Run Code Online (Sandbox Code Playgroud)

如果用户UNLIMITED TABLESPACE没有定义任何配额的权限,则需要在TEST表空间上定义一个配额,以便用户在执行上述命令后可以再次使用它:

alter user test quota unlimited on test;
Run Code Online (Sandbox Code Playgroud)