系統許可權( Database System Privilege )可以讓使用者執行特定的命令集。例如,CREATE TABLE許可權允許使用者建立表,GRANT ANY PRIVILEGE 許可權允許使用者授予任何系統許可權。對象許可權( Database Object Privilege )可以讓使用者能夠對各個對象進行某些操作。例如DELETE許可權允許使用者刪除表或視圖的行,SELECT許可權允許使用者通過select從表、視圖、序列(sequences)或快照 (snapshots)中查詢資訊。
每個Oracle使用者都有一個名字和口令,並擁有一些由其建立的表、視圖和其他資源。Oracle角色(role)就是一組許可權(privilege)(或者是每個使用者根據其狀態和條件所需的訪問類型)。使用者可以給角色授予或賦予指定的許可權,然後將角色賦給相應的使用者。一個使用者也可以直接給其他使用者授權。
一、建立使用者
Oracle內部有兩個建好的使用者:SYSTEM和SYS。使用者可直接登入到SYSTEM使用者以建立其他使用者,因為SYSTEM具有建立別 的使用者的 許可權。在安裝Oracle時,使用者或系統管理員首先可以為自己建立一個使用者
這段時間在學oracle,終於把公司的資料庫成功匯入到我自己的資料庫裡了。
create使用者
| 代碼如下 |
複製代碼 |
SQL> create user visiontv identified by visiontv default tablespace visiontv quota 10m on users; SQL> create user visiontv identified by visiontv default tablespace visiontv quota 10m on users; grant privilege SQL> grant connect,resource to visiontv; SQL> grant connect,resource to visiontv; create tablespace SQL> create tablespace visiontv datafile 'D:DBServeroracleoradataoradb01vis iontv.ora' size 100m reuse default storage(initial 500k next 500k pctincrease 20 3.3. ); SQL> create tablespace visiontv datafile 'D:DBServeroracleoradataoradb01vis iontv.ora' size 100m reuse default storage(initial 500k next 500k pctincrease 20 ); |
import後就可以用了。
//
建立使用者到使用者建表的步驟:
Server
建立:create user 使用者名稱 identified by "密碼";
授權:grant create session to 使用者名稱;
grant create table to 使用者名稱;
grant create tablespace to 使用者名稱;
grant create view to 使用者名稱;
Client:
建立資料表空間(一般建N個存資料的資料表空間和一個索引空間):
create tablespace 資料表空間名
datafile ' 路徑(要先建好路徑)***.dbf ' size *M
tempfile ' 路徑***.dbf ' size *M
autoextend on --自動成長
--還有一些定義大小的命令,看需要
default storage(
initial 100K,
next 100k,
);
Server:
授予使用者使用資料表空間的許可權:
alter user 使用者名稱 quota unlimited on 資料表空間;
或 alter user 使用者名稱 quota *M on 資料表空間;
自此,才大功告成可以隨意建表,運行SQL指令碼!
//1.建資料表空間
| 代碼如下 |
複製代碼 |
1.create tablespace OSDB datafile 'F:oracleoradataglsqjzOSDB.ora' size 100m reuse default storage(initial 500k next 500k pctincrease 20); create tablespace OSDB datafile 'F:oracleoradataglsqjzOSDB.ora' size 100m reuse default storage(initial 500k next 500k pctincrease 20);
|
2.建使用者
1
| 代碼如下 |
複製代碼 |
.create user OSUSER identified by OSUSER create user OSUSER identified by OSUSER;//identified by |
後面的是密碼,前面的是使用者名稱
3.使用者授權
| 代碼如下 |
複製代碼 |
1.grant resource,connect,RECOVERY_CATALOG_OWNER to OSUSER ; 2. 3.grant create table to OSUSER ; 4. 5.alter user OSUSER quota unlimited ON OSDB; 6. 7.alter user OSUSER default tablespace OSDB; grant resource,connect,RECOVERY_CATALOG_OWNER to OSUSER ; grant create table to OSUSER ; alter user OSUSER quota unlimited ON OSDB; alter user OSUSER default tablespace OSDB; |
4.刪除資料表空間
| 代碼如下 |
複製代碼 |
1.DROP TABLESPACE TableSpaceName INCLUDING CONTENTS AND DATAFILES; DROP TABLESPACE TableSpaceName INCLUDING CONTENTS AND DATAFILES;
|
二 、刪除使用者
刪除使用者,可以使用drop user命令,如下所示:
drop user user01;
如果使用者擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字CASCADE,可刪除使用者所有的對象,然後再刪除使用者。下面的例子用來刪除使用者與其對象:
drop user user01 CASCADE;
刪除使用者
| 代碼如下 |
複製代碼 |
DROP USER User_Name CASCADE DROP USER User_Name CASCADE |
6.刪除表的注意事項
在刪除一個表中的全部資料時,須使用
1.TRUNCATE TABLE 表名
TRUNCATE TABLE 表名;因為用DROP TABLE,DELETE * FROM 表名時,TABLESPACE資料表空間該表的佔用空間並未釋放,反覆幾次DROP,DELETE操作後,該TABLESPACE上百兆的空間就被耗光了。
三 、3種標準角色
Qracle為了相容以前的版本,提供了三種標準的角色(role):CONNECT、RESOURCE和DBA。
1. CONNECT Role(串連角色)
臨時使用者,特別是那些不需要建表的使用者,通常只賦予他們CONNECTrole。CONNECT是使用Oracle的簡單許可權,這種許可權只有在對其他使用者的表有訪問權時,包括select、insert、update和delete等,才會變得有意義。擁有 CONNECT role的使用者還能夠建立表、視圖、序列(sequence)、簇(cluster)、同義字(synonym )、會話(session)和與其他資料庫的鏈(link)。
2. RESOURCE Role(資源角色)
更可靠和正式的資料庫使用者可以授予RESOURCE role。RESOURCE提供給使用者另外的許可權以建立他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。
3. DBA Role(資料庫管理員角色)
DBA role擁有所有的系統許可權—-包括無限制的空間限額和給其他使用者授予各種許可權的能力。SYSTEM由DBA使用者擁有。下面介紹一些DBA經常使用的典型許可權。
(1)grant(授權)命令
下面對剛才建立的使用者user01授權,命令如下:
grant connect, resource to user01;
(2)revoke(撤消)許可權
已授與權限可以撤消。例如撤消(1)中的授權,命令如下:
revoke connect, resource from user01;
一個具有DBA角色的使用者可以撤消任何別的使用者甚至別的DBA的CONNECT、RESOURCE 和DBA的其他許可權。當然,這樣是很危險的,因此,除非真正需要,DBA許可權不應隨便授予那些不是很重要的一般使用者。
撤消一個使用者的所有許可權,並不意味著從Oracle中刪除了這個使用者, 也不會破壞使用者建立的任何錶;只是簡單禁止其對這些表的訪問。其他要訪問這些表的使用者可以象以前那樣地訪問這些表。
四、建立角色
除了前面講到的三種系統角色—-CONNECT、RESOURCE和DBA,使用者還可以在Oracle建立自己的role。使用者建立的role可以由表或系統許可權或兩者的組合構成。為了建立role,使用者必須具有CREATE ROLE系統許可權。下面給出一個create role命令的執行個體:
create role STUDENT;
這條命令建立了一個名為STUDENT的role。
一旦建立了一個role,使用者就可以給他授權。給role授權的grant命令的文法與對對使用者的文法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:
grant select on CLASS to STUDENT;
現在,擁有STUDENT 角色的所有使用者都具有對CLASS 表的select許可權。
五、刪除角色
要刪除角色,可以使用drop role命令,如下所示:
drop role STUDENT;
指定的role連同與之相關的許可權將從資料庫中全部刪除。