1. 程式人生 > >Oracle基礎學習4--Oracle許可權傳遞

Oracle基礎學習4--Oracle許可權傳遞

下面將用一個例項來講解:

首先用oracle系統使用者(sysdba身份)連線到Oracle

然後建立兩個使用者“lisi”和“zhangsan”

然後為lisi授權,授建立表的許可權

lisi連線到資料庫,並建立一個表mytable

為zhangsan授予連線到資料庫、建立表等許可權,並連線到Oracle

我們要知道,lisi建立的表mytable的操作許可權只有lisi(還有系統使用者)自己擁有,其它使用者(比如zhangsan)是不擁有許可權的,下面我們以將lisi的表mytable的查詢許可權傳遞給zhangsan為例,來講解許可權傳遞:

首先,未授權情況下zhansan是不具有操作lisi表mytable的許可權的:

然後lisi(當前的連線使用者必須為lisi)將查詢mytable的許可權傳遞給zhangsan

然後zhangsan就可檢視到mytable的內容

這就是所謂的許可權傳遞,其它許可權也類似,如:(lisi為zhangsan授權)

  授插入許可權:grant insert on mytable to zhangsan;

  授所有許可權:grant all on mytable to zhangsan;

還可以將許可權控制到某一列,例如:

  grant update(id) on mytable to zhangsan(表示張三隻能更新id這一列,其它列沒有許可權)

當然系統許可權

也可由“系統使用者”來傳遞給其它普通使用者:

  系統使用者sys為lisi授權如下

  

注,預設情況下,被授權的人不再擁有將此許可權再授予給其它人的許可權,若想有此許可權,就要再授權語句後面加上with admin option(如上第2句,lisi將擁有把自己剛得到的許可權傳遞給zhangsan的許可權)。

下面給出上面常用到的命令: