首先我們從安全對象來了解架構:
如圖1:
使用圖形表示,這樣我們更能方便的了解架構,和她在安全對象中所處的位置及與其他安全對象的關系。
找到一張,如圖,數據庫引擎權限層次結構之間的關系圖:
這能幫助我們理解架構。
引用幫助文檔對架構的定義:
從 SQL Server 2005 開始,每個對象都屬於一個數據庫架構。數據庫架構是一個獨立於數據庫用戶的非重復命名空間。您可以將架構視為對象的容器。可以在數據庫中創建和更改架構,並且可以授予用戶訪問架構的權限。任何用戶都可以擁有架構,並且架構所有權可以轉移。
在SQL Server 2000中架構和用戶是沒有多大的區別,我們在2000中一般是指所有者。2005後,用戶和架構開始明確的分開,架構可以理解為對象的容器或者命名空間。
對於架構特點的理解小節如下:
1.一個架構中不能包含相同名稱的對象,相同名稱的對象可以在不同的架構中存在。
2.一個架構只能有一個所有者,所有者可以是用戶, 數據庫角色, 應用程序角色。
3.一個用數據庫角色可以可以擁有一個默認架構,和多個架構。
4.多個數據庫用戶可以共享單個默認架構。
5.由於架構與用戶獨立,刪除用戶不會刪除架構中的對象。
6.SQL Server 2000 中對象引用是:
[DatabaseServer].[DatabaseName].[ObjectOwner].[DatabaseObject]
SQLServer2005中對象引用是:
[DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject]