程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server與Oracle數據庫在安全性上的異同(2)

SQL Server與Oracle數據庫在安全性上的異同(2)

編輯:關於SqlServer
如我們通過命令,建立一個test的用戶,其密碼為test111。
Create user test identifIEd by test111;
注意 ,這裡設置用戶名密碼的時候,若是純數字的密碼,則數據庫不會接受。
然後,我們利用如下語句連接到數據庫,看看有什麼現象。
Connet test/test111;
此時,數據庫會拒絕這個用戶登陸到數據庫,會提示這個用戶沒有連接到數據庫的權限。除非,我們再利用如下命令,對用戶進行授權。
Grant connect to test;
對用戶名進行授權後,才能夠連接到數據庫中去。這一點差異,很多數據庫管理員在剛開始接觸數據庫的時候,特別是先前有SQL Server數據庫使用經驗的人,一般都不容易搞清楚。結果在學習或者使用的時候,會遇到一些麻煩。筆者因為參加過SQL Server數據庫管理員的培訓與考試,所以,在後續使用Oracle數據庫的時候,對於這一點當時就有點困惑。現在回頭想想,Oracle大概是基於安 全方面的考慮吧。
3、 對象授權。
假設現在有如下這種情形。
現在有個用戶test,其有product表的查詢權限。而另外一個用戶test1不具有這個表的任何訪問權限。現在,test想把product表的查 詢權限賦予test1,讓其也可以查詢數據庫中的product表。注意,這裡的用戶test只是普通用戶,不是數據庫管理員。
這個需求在SQL Server數據庫中,是無法實現的,因為用戶test沒有數據庫管理的權限,而只有表查詢的權限,其沒有權利為其他用戶分配這個表的查詢權限的權利。但是,在Oracle數據庫中,則通過“對象授權” 的方式,可以實現這個需求。
第一步:利用系統管理員帳戶,在分配權限的時候,給予“ 對象授權” 的權利。
如先用系統管理員帳戶登陸到系統中,然後給用戶test查詢表product的權利,並啟用對象授權模式。具體命令如下:
Grant select on product to test with grant option;
Grant select on product to test就表示用戶test具有查詢表product的權限;而後面的with grant option則表示對於這個用戶開啟了“ 對象授權” 的模式。以後,test用戶可以把對於表product的查詢權限賦予給其他用戶。
第二步:利用test用戶登陸,然後賦予test1用戶表prodcut的查詢權限。
Grant select on product to test1;
這個語句就是用戶test賦予用戶test1表product的查詢權利。若我們在給test用戶賦予權限的時候,沒有啟用“對象授權”模式,即沒有在後 面加入with grant option語句,則在以普通用戶test執行這條語句的時候,就會發生錯誤,提示用戶沒有這個權限。但是,若我們系統管理員在給test用戶分配權限的 時候,開啟了“對象授權”的模式,則用戶test就可以賦予用戶test1表查詢的權限。不過,這只是針對於特定的表與特定的操作。如果數據庫管理員在分 配test用戶權限的時候,只用了“Grant select on product to test with grant option”這個語句,就表示test用戶只能針對表product的查詢權限進行再授權。如,現在test1想把表product-bom的查詢權限 賦予給test1的話,數據庫服務器就不允許了,因為其沒有這個權利。
這就是對象授權的功能,雖然其破壞了數據庫權限管理的統一性,但是,這也提高了數據庫權限設計的靈活性,在大型數據庫設計的過程中,經常會被用到。
除了對表可以進行對象授權之外,還可以對過程、視圖等等也進行對象授權。這裡要注意的是,在對象授權的過程中,是需要對每個步驟進行授權。如現在用戶 test具有表product記錄查詢、記錄更新、記錄刪除等的權利。但是,其只有表查詢權利的“對象授權”。此時,test用戶就不能夠把這個表的更 新、刪除等權利賦予給用戶test1。因為帳戶test對對象進行再授權,只是針對特定的查詢操作。
另外,除了對象授權之外,Oracle數據庫中還有一個“系統授權”的概念。系統授權跟對象授權類似,只是其針對的是系統管理的權限,如帳戶刪除或者新建的操作。需要注意的是,系統授權仍然需要分步驟來進行授權。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved