1. 程式人生 > >Oracle對表空間、用戶、用戶權限的操作

Oracle對表空間、用戶、用戶權限的操作

option 應該 rain 建立 bsp 賬戶 停止 including ora

一、對表空間的操作

1、創建表空間(create tablespace)

-- ‘hpdb_tablespace‘ 指定表空間名稱
-- ‘e:\hpdb.dbf‘ 指定表空間數據文件名稱
-- size 指定表空間的初始化大小
-- autoextend on next 30M 指定當表空間不足時,自動擴增的空間大小
-- autoextend off 停止自動擴展表空間
-- maxsize unlimited 表空間的最大空間不設置上限
create tablespace hpdb_tablespace datafile e:\hpdb.dbf size 100M autoextend on
next 30M maxsize unlimited;
create tablespace table datafile ‘e:\aa.dbf‘ size 10M;

2、修改表空間的大小

alter database datafile e:\hpdb.dbf resize 30M;

3、為表空間設置自動擴展

alter database datafile e:\hpdb.dbf autoextend on next 30M maxsize unlimited;

4、關閉表空間自動擴展

alter database datafile e:\hpdb.dbf autoextend off

5、為表空間添加一個數據文件

alter tablespace hpdb_tablespace add datafile e:\22.dbf size 100m;

6、刪除表空間中的一個數據文件

alter tablespace hpdb_tablespace drop datafile e:\\22.dbf 

7、 刪除表空間

-- 只刪除表空間,對應的數據文件並沒有刪除
drop tablespace hpdb_tablespace;
-- 同時刪除表空間和數據文件
-- (1)先將表空間offline
alter tablespace hpdb_tablespace offline;
-- (2)刪除表空間和數據文件
-- 刪除表空間、數據文件 drop tablespace hpdb_tablespace including contents and datafiles;
--刪除表空間、數據文件、關聯
drop tablespace hpdb_tablespace including contents and datafiles cascade constraint;

二、對臨時表空間的操作

1、創建臨時表空間(create temporary tablespace)

-- 和創建表空間的方式很相似
-- 註意:表空間通過create tablespace來創建;臨時表空間通過create temporary tablespace類創建;表空間通過datafile為表空間指定數據文件的名稱;臨時表空間通過tempfile為其指定數據文件的名稱 -- 臨時表空間的作用:臨時表空間主要用途是在數據庫進行排序運算、管理索引、訪問視圖等操作時提供臨時的運算空間,當運算完成之後系統會自動清理。 create temporary tablespace hpdb_tmp tempfile ‘e:\hpdb_tmp.dbf‘ size 100M autoextend on next 30M maxsize unlimited;

2、查看臨時表空間

--查看臨時表空間
select
name from v$tempfile
--查看當前用戶的臨時表空間
select * from database_properties where property_name=‘DEFAULT_TEMP_TABLESPACE‘;

3、修改臨時表空間的大小

alter database tempfile e:\hpdb_tmp.dbf resize 30M;

4、為臨時表空間設置自動擴展

alter database tempfile e:\hpdb_tmp.dbf autoextend on next 20M maxsize unlimited;

5、關閉臨時表空間的自動擴展

alter database tempfile e:\hpdb_tmp.dbf autoextend off;

6、為臨時表空間添加一個數據文件

alter tablespace hpdb_tmp add tempfile e:\2.dbf size 100M;

7、刪除臨時表空間中的一個數據文件

--刪除2.dbf文件
alter
tablespace hpdb_tmp drop tempfile e:\2.dbf;

8、刪除臨時表空間

--刪除表空間,不刪除.dbf文件
drop tablespace hpdb_tmp including contents and datafiles cascade constraints;

9、刪除默認的臨時表空間

默認的臨時表空間不能直接刪除,我們只能通過以下步驟間接的刪除默認的臨時表空間:

  1. 先定義一個新的臨時表空間temp2,使temp2作為中轉表空間;
  2. 將默認表空間temp1換成temp2;( alter database default temporary tablespace temp1;
  3. 然後將之前的默認臨時表空間temp1刪除;
  4. 在定義一個新的臨時表空間temp3,使temp3作為新的默認臨時表空間;
  5. 刪除中轉表空間temp2;

經過以上幾步,默認的表空間temp1就被替換成了新的表空間temp3。

三、對用戶的操作

1、創建用戶

-- user 後跟用戶名
-- identified by 登錄密碼
-- default tablespace 用戶默認表空間
-- temporary tablespace 用戶臨時表空間
-- 如果建立用戶時不指定default tablespace,Oracle會將SYSTEM表空間作為用戶默認表空間。
-- 如果建立用戶時不能指定temporary tablespace,Oracle會將數據庫默認臨時表空間作為用戶的臨時表空間。
create user CS identified by 123456 DEFAULT tablespace hpdb_tablespace temporary tablespace hpdb_tmp;

2、更改用戶的默認表空間

alter user CS default tablespace newTemp;

3、更改用戶的默認臨時表空間

alter user CS temporary tablespace temp3;

4、修改用戶密碼

alter user CS identified by 000000

5、 刪除用戶

--刪除用戶,並刪除該用戶創建的對象
--不能刪除正在連接的用戶
drop user CS cascade

6、鎖定用戶

alter user CS account lock;

7、解除鎖定

alter user CS account unlock;

四、用戶權限、角色管理

我們新創建的用戶是沒有任何權限的,甚至連登錄連接數據的權限都沒有,那麽,我們在創建完用戶後,就要為其分配權限,或者角色。

用戶的權限分為兩類:系統權限、對象權限

  系統權限:允許用戶執行某些數據庫操作(如登錄需要的權限create session;創建數據表的權限create table)。

  對象權限:允許用戶對某一特定對象執行特定的操作(如select、delete、update等權限)。

  角 色:為了簡化權限管理,進而引入了角色的概念,角色是具有名稱的一組權限的組合。

系統預定義的用戶角色

 CONNECT:時用戶 (只有登錄的權限)
 RESOURCE:更為可靠和正式的用戶
  DBA:數據庫管理員角色,擁有管理數據庫的最高權限,該角色不應該給一般的用戶。

1、授予用戶角色

--為用戶CS授予connect、resource角色
GRANT CONNECT,RESOURCE TO CS;

2、授予用戶系統權限

--授予用戶CS登錄連接數據庫的權限
grant create session to CS;
--授予用戶CS創建數據表的權限
grant create table to CS;
--賦予用戶CS使用表空間的權限
grant ulimited tablespace to CS;

3、授予用戶對象權限

-- 賦予用戶CS查看數據表dept的權限
grant select on dept to CS;
-- 賦予用戶CS查看所有數據表的權限
grant select any table to CS;

4、撤銷用戶角色

--撤銷用戶CS的connect、resource角色
REVOKE CONNECT,RESOURCE FROM CS;
--撤銷用戶CS的創建數據表的權限
revoke create table from CS;
--撤銷用戶CS的使用表空間的權限
revoke ulimited tablespace from CS;
--撤銷用戶CS的查看數據表dept的權限
revoke select on dept from CS;
--撤銷用戶CS查看所有數據表的權限
revoke select any table from CS;

5、權限級聯

grant select on Student to CS with grant option;-- 賦予用戶CS查看數據表Student的權限,並且用戶CS可以將該權限賦予其他用戶
  • with grant option (用於對象權限授權,權限是級聯的)賦予權限賬戶被刪除或權限被撤銷,被賦予權限的用戶的權限也將被撤銷
  • with admin option (用於系統權限授權,權限是不級聯的)賦予權限賬戶被刪除或權限被撤銷,被賦予權限的用戶的權限不會被撤銷

Oracle對表空間、用戶、用戶權限的操作