資料庫控制語言的功能室控制使用者對資料庫的存取許可權。使用者對某類資料具有何種操作許可權是有DBA決定的。Oracle

 

通過GRANT語句完成許可權的授予,通過REVOKE語句完成對許可權的收回。

 

許可權分為系統許可權和物件使用權限;系統許可權是對於資料庫的許可權,物件使用權限是操作資料庫物件的許可權。



創建使用者

 

基本語法:

 

CREATE USER user_name

 

IDENTIFIED BY password;

 

在使用者創建成功之後,系統管理員DBA會賦予使用者一些許可權,來完成相應的操作。不具有某些操作許可權的使用者,是無

 

法完成操作的。

 

例:創建使用者test ,密碼:test001

 

create user test
identified by test001

 

但是讓使用上面創建的使用者和密碼進行登錄時確無法登錄成功。因為該沒用沒有create session 許可權。要授予該許可權則要使用grant語句。

 

授予許可權

 

基本語法:

 

GRANT 許可權1 ,許可權2,... TO user_name ;

 

應用程式開發者,一般應該具有以下許可權:

 

CREATE SESSION(創建會話) CREATE TABLE(創建表) CREATE SEQUENCE(創建序列) CREATE VIEW(創建視圖) CREATE PROCEDURE(創建過程)
例:給test使用者授予創建會話許可權。

 

grant create session to test ;

 

將create session 賦予使用者之後,就可以正常的與資料庫連接了,表示已經創建了一個session 會話。此時如果該用

 

戶要創建表,序列,視圖,則要授予上面的全部許可權。在授予了create table 的許可權之後,還是無法創建表的,因為

 

此時是沒有表空間。還要分配表空間才能創建表。

 

上面的操作還是比較的繁瑣的,其實可以把多個許可權封裝成一個角色,在把該角色賦予給使用者。

 

角色

 

創建角色:

 

CREATE ROLE testrole ;

 

為角色賦予許可權:

 

GRANT CREATE TABLE , CREATE VIEW TO testrole ;

 

將角色授予使用者:

 

GRANT testrole TO test ;

 

Oracle 中提供了兩個主要的角色:CONNECT ,RESOURCE 。可以直接將這個兩個角色授予給使用者。

 

修改使用者密碼

 

基本語法

 

ALTER USER user_name

 

IDENTIFIED BY new_password ;

 

來修改密碼。

 

分配物件使用權限

 

不同的物件具有不同的物件使用權限,物件的擁有者擁有擁有權限,物件的擁有者可以向外分配許可權。 基本語法:
GRANT 操作 ON 其他使用者.表名 TO 使用者
例:如果test使用者想要訪問scott使用者下的emp表,並進行查詢、刪除,則要取得訪問該表的許可權。

 

GRANT select , delete ON scott.emp TO test ;

 

此時test使用者,便可以對emp表進行查詢和刪除操作 了 。

 

WITH GRANT OPTION 和PUBLIC 關鍵字。with grant option 是被授權的使用者還可將獲得的許可權在授給其他

 

的使用者。public 是為所有的使用者都分配權利。

 

回收許可權

 

基本語法

 

rovoke 許可權 on 使用者.表名稱 from 使用者 ;

 

例:回收test使用者獲得查詢和刪除許可權

 

revoke select ,delete on scott.emp from test ;
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()