SQL SERVER中[dbo]的解釋

http://blog.csdn.net/libo2006/article/details/1719178

http://www.cnblogs.com/java-boy/archive/2011/04/16/2018259.html

1.作用:
(1)DBO是每個數據庫的默認用戶,具有所有者權限,即DbOwner;
通過用DBO作爲所有者來定義對象,能夠使數據庫中的任何用戶引用而不必提供所有者名稱。
(2)至於爲什麼要使用所有者進行限定,是因爲不同的用戶可能創建同名的對象,例如登錄名me和登錄名you在pubs數據庫中分別創建了用戶名me,和 you,這二個用戶都創建了
testtable這個同名表,而這二個表雖然同名但結構或數據可能完全不同,爲了避免調用錯誤,必須使用所有者名稱進行限定. 
2.舉例:
比如:你以User1登錄進去並建表Table,而未指定DBO,當用戶User2登進去想訪問Table時就得知道這個Table是你User1建立的,要寫上User1.Table,如果他不知道是你建的,則訪問會有問題。
如果你建表時把所有者指給了Dbo,則別的用戶進來時寫上Dbo.Table就行了,不必知道User1。
3.擴展:
怎樣來調用別的用戶創建的對象呢?例如me用戶訪問you用戶創建的表或訪問dbo創建的表.此種情況,必須同時滿足二個條件: 
(1)將me用戶的數據庫角色設置爲db_owner,否則無法訪問其他用戶(包括dbo用戶)創建的對象.(企業管理器-> 用戶,右鍵菜單 <屬性> 中設置) 
(2)使用所有者進行限定. 
例如me訪問you創建的testtable: 
select   *   from   you.testtable 
不光表是如此,視圖等等數據庫對象建立時也要如此纔算是好。 

發佈了124 篇原創文章 · 獲贊 20 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章