[英]How to create new schemas under same user in oracle database 11g? Or can an user make only one schema?
[英]How to assign a user just to one tablespace? - Oracle 11g
安裝新數據庫時,最佳做法是創建新用戶和新表空間,因為不應使用SYS / SYSTEM或/和在表空間“ SYSTEM”上創建表。
因此,我使用以下命令創建了用戶“ alex”和表空間“ alexData”:
CREATE TABLESPACE alexData datafile 'C:/oraclexe/alexData.dbf'
size 100M;
ALTER USER alex QUOTA UNLIMITED ON alexData;
ALTER USER alex QUOTA 0 ON SYSTEM;
我想實現用戶“ alex”只能將其數據保存在“ alexData”表空間中。
為什么? 因為當他想要訪問表時,他不必總是提到表空間“ alexData”。
否則,他總是需要像這樣提及它:
SELECT *
FROM alexData.table
但我希望他總是在那個表空間中,所以他不需要提及它:
SELECT *
FROM table;
這可能嗎?
您不能在SYS
擁有的表上創建觸發器,或者SYSTEM
請參見:
如果要在其上創建觸發器的表是已創建的表,則該表應位於ALEX
架構上。 該模式應具有在同一模式下創建的表上創建觸發器的特權。 如之前的注釋中所述,您應該從ALEX
模式中撤消CREATE ANY TABLE
特權,因為該用戶只能在自己的模式中創建表。
首先,@ Mat告訴的后果,您不能使用像
SELECT * FROM alexData.table_
但SELECT * FROM alex.table_
,因為表可以以模式名作為前綴。 您可能會注意到,您不能使用table
(這是oracle的關鍵字)作為表名,因此我改用table_
。
創建用戶時,將在該表空間內自動創建對象。 例如,當發出create table ...
語句時,如果您使用DEFAULT TABLESPACE
短語create
或alter
用戶,則無需提及表空間:
CREATE USER alex IDENTIFIED BY alex321
DEFAULT TABLESPACE alexData
TEMPORARY TABLESPACE alexTempData;
要么
ALTER USER alex IDENTIFIED BY alex321
DEFAULT TABLESPACE alexData;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.