linux下創(chuàng)建oracle用戶表空間
操作步驟如下:
- 登錄linux辽旋,以oracle用戶登錄(如果是root用戶登錄的论巍,登錄后用 su - oracle命令切換成oracle用戶)
- 以sysdba方式來(lái)打開(kāi)sqlplus,命令如下: sqlplus "/as sysdba"
- 查看我們常規(guī)將用戶表空間放置位置:執(zhí)行如下sql:select name from v$datafile;上邊的sql一般就將你的用戶表空間文件位置查出來(lái)了
- 創(chuàng)建用戶表空間:CREATE TABLESPACE NOTIFYDB DATAFILE '/oracle/oradata/test/notifydb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
- 創(chuàng)建用戶,指定密碼和上邊創(chuàng)建的用戶表空間:CREATE USER hc_notify IDENTIFIED BY hc_password DEFAULT TABLESPACE NOTIFYDB;
- 賦予權(quán)限
grant connect,resource to hc_notify;
grant unlimited tablespace to hc_notify;
grant create database link to hc_notify;
grant select any sequence,create materialized view to hc_notify;
GRANT create any table TO jack;
GRANT resource,dba TO jack;
GRANT select any table TO jack;
- 經(jīng)過(guò)以上操作礁蔗,我們就可以使用hc_notify/hc_password登錄指定的實(shí)例突硝,創(chuàng)建我們自己的表了
創(chuàng)建臨時(shí)表空間:
create temporary tablespace test_temp tempfile 'F:\app\think\oradata\orcl\test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;
創(chuàng)建表空間:
create tablespace test_data logging datafile 'F:\app\think\oradata\orcl\test_data01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;
創(chuàng)建用戶:
create user jack identified by jack default tablespace test_data temporary tablespace test_temp;
為用戶賦予權(quán)限:
GRANT create any table TO jack;
GRANT resource,dba TO jack;
GRANT select any table TO jack;
這種問(wèn)題,一看就是當(dāng)前連接用戶沒(méi)有對(duì)sys用戶下的表v$session,v$sesstat,v$statname的select權(quán)限
解決此問(wèn)題的方式就是授權(quán):
以sysdba身份登錄
grant select on v_$statname to username;
grant select on v_$sesstat to username;
grant select on v_$session to username;
grant select on v_$mystat to username;
第一個(gè)是授予所有table有create權(quán)限,第三是授予所有table有select權(quán)限.
第二個(gè)就是賦予DBA的權(quán)限螃宙,這才是最重要的,其實(shí)只要第二就可以了.
刪除用戶表空間的步驟:
Alter tablespace 表空間名稱 offline;
Drop tablespace 表空間名稱;(表空間無(wú)有數(shù)據(jù)時(shí)用)
或者
drop tablespace 表空間名稱 including contents;(表空間下有數(shù)據(jù)時(shí)候用)
temporary tablespace是oracle里臨時(shí)表空間蛮瞄,臨時(shí)表空間主要用途是在數(shù)據(jù)庫(kù)進(jìn)行排序運(yùn)算、管理索引谆扎、訪問(wèn)視圖等操作時(shí)提供臨時(shí)的運(yùn)算空間挂捅,當(dāng)運(yùn)算完成之后系統(tǒng)會(huì)自動(dòng)清理。當(dāng)oracle里需要用到sort的時(shí)候堂湖,而pga又沒(méi)有足夠大的時(shí)候闲先,將會(huì)把數(shù)據(jù)放入臨時(shí)表空間里進(jìn)行排序,同時(shí)如果有異常情況的話无蜂,也會(huì)被放入臨時(shí)表空間,但是我們需要重建temporary tablespace,直接是不能drop默認(rèn)的臨時(shí)表空間的伺糠,不過(guò)我們可以通過(guò)以下方法來(lái)做。
查看目前的temporary tablespace
select name from v$tempfile;