Oracle 學習筆記 13

來源:互聯網
上載者:User

資料庫控制語言的功能室控制使用者對資料庫的存取許可權。使用者對某類資料具有何種操作許可權是有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 ;

除了使用語句建立許可權之外,也可以直接在Enterprise  Manager  console 下進行建立。不在贅述。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.