1如何創建用戶
當你創建用戶時,應該定義它的表空間(default tablespace)。否則,它會使用系統表空間(system tablespace)。這是應該避免的。 這是常用的創建用戶的一個例子: CREATE USER XXXXX IDENTIFIED BY xxxxx
PROFILE DEFAULT
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMPTS01
ACCOUNT UNLOCK; 請注意,你首先要確認你的數據庫裡是否有這二個表空間:USERS和TEMPTS01。如果沒有,你先要創建表空間USERS及TEMPTS01,然後再創建用戶。(建立表空間命令請參見下面)
2基本命令
1.建立 修改 刪除用戶帳戶
create user 用戶名
identifIEd by 口令
[default tablespace 表空間名]
[temporary tablespace 表空間名]
[passWord expire]
[account{lock|unlock}]
修改:alter user 用戶名
indentifIEd by 口令
刪除:drop user 用戶名
2.授予用戶權限
上面新創建的用戶沒有人戶權限所以什麼都做不了 所以要授予他某些權限
權限類型有兩種 系統權限 對象權限
a.系統權限 create session 如果沒有此權限用戶就無法與Oracle數據庫連接 所以用戶都有此權限
create table 用戶在自己的模式中創建表
create any table 在數據庫的任何模式中創建表
create vIEw
create any vIEw
create type 用戶在自己的模式中創建類型
create any type
create procedure
create trigger
create synonym 用戶在自己的模式中創建同義詞
create sequence 用戶在自己的模式中創建序列
alter database 改變數據庫配置
alter system ...................參數
alter any table 更改數據庫中任何表的結構
audit system 審計SQL語句
drop any table 在數據庫中刪除任何表或表的分區
delete any table 在數據庫的任何表或視圖中刪除行
execute any procedure
execute any type
grant any privilege 授予用戶任何系統權限
grant any role 授予用戶任何角色
insert any table
select any table
sysoper 啟動和關閉數據庫 加載,打開或備份數據庫,執行ARCHIVELOG和RECOVER命令
sysdba DATABASE語句修改數據庫
update any table
unlimited tablespace
將系統權限授予用戶的SQL命令
grant 系統權限 to 用戶名 [with admin option]
收回命令
revoke 系統權限 from 用戶名
b.授予對象權限
grant 對象權限 on 對象名 to 用戶名 [with grant option] [with hIErarchy option]
(對象名 比如在那個表上就是表明 ;對象權限 insert update delete select等)
3表空間相關命令
.更改用戶表空間設置
alter user 用戶名
default tablespace 表空間名
temporary tablespace 表空間名
創建表空間
create tablespace 表空間名
datafile
'數據文件名'[size 整數[K|M]] [reuse]
[autoextend
{off | on
[next 整數 [K | M] ]
[maxsize {unlimited | 整數 [K | M] } ] } ]
[,.............其他數據文件.....]
[online | offonline]
[permanent | temporary];
eg: create tablespace newtbsp
datafile
'f:\userdata\sp1.dbf' size 100K reuse ...........f:\userdata在f盤建立的文件夾 ,sp1.dbf 數據文件大小100K
autoextend on next 100k maxsize 1M, ..............每次擴展100K 最大到1M
'f:\userdata\sp2.dbf' size 100K reuse
online
permanent; ...................online permanent 是默認的可以不寫
若要給表空間增加一個名為sp3.dbf的文件 可以用以下語句
alter tablespace newtbsp
datafile 'f:\userdata\sp3.dbf' size 5M;
建立表空間例三: CREATE TABLESPACE data01
DATAFILE '/Oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定區尺寸為128k,如不指定,區尺寸默認為64k 刪除表空間 DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES; 建立UNDO表空間 CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/Oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M #注意:在OPEN狀態下某些時刻只能用一個UNDO表空間,如果要用新建的表空間,必須切換到該表空間: ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 建立臨時表空間 CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/Oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M 改變表空間狀態 1.使表空間脫機 ALTER TABLESPACE game OFFLINE; 如果是意外刪除了數據文件,則必須帶有RECOVER選項 ALTER TABLESPACE game OFFLINE FOR RECOVER; 2.使表空間聯機 ALTER TABLESPACE game ONLINE;
3.使數據文件脫機 ALTER DATABASE DATAFILE 3 OFFLINE; 4.使數據文件聯機 ALTER DATABASE DATAFILE 3 ONLINE; 5.使表空間只讀 ALTER TABLESPACE game READ ONLY; 6.使表空間可讀寫 ALTER TABLESPACE game READ WRITE; 五、刪除表空間 DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES; 六、擴展表空間首先查看表空間的名字和所屬文件 select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name; 1.增加數據文件
ALTER TABLESPACE game
ADD DATAFILE '/Oracle/oradata/db/GAME02.dbf' SIZE 1000M; 2.手動增加數據文件尺寸
ALTER DATABASE DATAFILE '/Oracle/oradata/db/GAME.dbf'
RESIZE 4000M; 3.設定數據文件自動擴展
ALTER DATABASE DATAFILE '/Oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M; 設定後查看表空間信息 SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;