在數據庫只有一個實例的情況下,如果要實現數據的隔離,最簡單的方法就是創建多個表空間,添加多個用戶,一個用戶對應一個表空間,這樣就實現了數據的隔離(多個開發團隊共用一個oracle實例)。
1.ssh shell 工具登錄到oracle服務器(Linux)
切換到oracle
輸入命令:su - oracle
進入sqlplus
輸入命令:sqlplus
輸入用戶名和密碼(有dba權限的用戶)
2.查看錶空間文件的位置
select name from v$datafile;
假如我的實例名稱爲orcl,oracle安裝在了/u01/app目錄下,查詢結果是這樣
/u01/app/oracle/oradata/orcl/system.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
......
3.創建表空間
這裏就創建在/u01/app/oracle/oradata/orcl/目錄下,
db_test01 是表空間名稱,data_test01.dbf是表空間文件
create tablespace db_test01 datafile '/u01/app/oracle/oradata/orcl/data_test01.dbf' size 256M autoextend on next 100M maxsize unlimited;
這步執行完用 select name from v$datafile; 查看下是否創建成功。
也可以再給這個表空間再增加表空間文件(一個表空間文件不夠的情況下)。
alter tablespace db_test01add datafile '/u01/app/oracle/oradata/orcl/data_test02.dbf' size 256M autoextend on next 100M maxsize unlimited;
4.創建用戶並指定用戶所使用的表空間
創建用戶名爲test_user,密碼爲123456,所使用表空間爲db_test01的用戶
create user test_user identified by 123456 default tablespace db_test01;
5.用戶授權
將dba權限授給test_user
grant dba to test_user
ok,搞定了,可以用plsql或其他工具登錄測試一下。
若要實現數據的隔離(如:另一個開發小組也用這個數據庫實例),重複3,4,5步,指定不同的表空間名稱、不同的表空間文件、不同的用戶即可。