下面將用一個實例來講解:
首先用oracel系統用戶(sysdba身份)連接到Oracle
然後創建兩個用戶“lisi”和“zhangsan”
然後為lisi授權,授創建表的權限
lisi連接到數據庫,並創建一個表mytable
為zhangsan授予連接到數據庫、創建表等權限,並連接到Oracle
我們要知道,lisi創建的表mytable的操作權限只有lisi(還有系統用戶)自己擁有,其它用戶(比如zhangsan)是不擁有權限的,下面我們以將lisi的表mytable的查詢權限傳遞給zhangsan為例,來講解權限傳遞:
首先,未授權情況下zhansan是不具有操作lisi表mytable的權限的:
然後lisi(當前的連接用戶必須外lisi)將查詢mytable的權限傳遞給zhangsan<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140619/2014061908585710." alt="\">
然後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的權限)。
下面給出上面常用到的命令: