全文搜索目錄視圖 xml 架構(gòu)(XML 類型系統(tǒng))目錄視圖 鏈接服務(wù)器目錄視圖
信息架構(gòu)視圖
信息架構(gòu)視圖是 SQL Server 提供的幾種獲取元數(shù)據(jù)的方法之一。
注意:信息架構(gòu)視圖提供 SQL Server 元數(shù)據(jù)的獨立于系統(tǒng)表的內(nèi)部視圖。盡管已經(jīng)對基礎(chǔ)系統(tǒng)表進行了重要的修改,信息架構(gòu)視圖仍然可使應(yīng)用程序正常工作。SQL Server 中包含的信息架構(gòu)視圖符合 INFORMATION_SCHEMA 的 ISO 標準定義
引用當前服務(wù)器時,SQL Server 支持三部分命名約定。ISO 標準也支持三部分命名約定。但是,兩種命名約定中使用的名稱并不相同。信息架構(gòu)視圖是在名為 INFORMATION_SCHEMA 的特殊架構(gòu)中定義的。此架構(gòu)包含在每個數(shù)據(jù)庫中。每個信息架構(gòu)視圖均包含存儲在特定數(shù)據(jù)庫中的所有數(shù)據(jù)對象的元數(shù)據(jù)。下表顯示了 SQL Server 名稱和 SQL 標準名稱之間的關(guān)系。
SQL Server 早期版本中的許多系統(tǒng)表現(xiàn)在都作為一組視圖實現(xiàn)。這些視圖稱為兼容性視圖,僅用于向后兼容。兼容性視圖公開的元數(shù)據(jù)在 SQL Server 2000 中也提供。但是,兼容性視圖不公開與在 SQL Server 2005 及更高版本中引入的功能有關(guān)的任何元數(shù)據(jù)。因此,當您使用新功能(例如 Service Broker 或分區(qū))時,必須切換到使用目錄視圖。 升級到目錄視圖的另一個原因是,存儲用戶 ID 和類型 ID 的兼容性視圖列可能返回 NULL 或觸發(fā)算術(shù)溢出。這是因為您可以創(chuàng)建超過 32,767 個用戶、組和角色,以及超過 32,767 種數(shù)據(jù)類型。例如,如果要創(chuàng)建 32,768 個用戶,則可運行以下查詢:SELECT * FROM sys.sysusers。如果 ARITHABORT 設(shè)置為 ON,則查詢會失敗,并出現(xiàn)算術(shù)溢出錯誤。如果 ARITHABORT 設(shè)置為 OFF,則 uid 列返回 NULL。若要避免這些問題,建議您使用新增的目錄視圖,這些視圖可以處理增加的用戶 ID 和類型 ID 數(shù)目。下表列出了會出現(xiàn)此溢出的列。
這些視圖包含 Microsoft SQL Server 中由復(fù)制使用的信息。 使用這些視圖可以更輕松地訪問復(fù)制系統(tǒng)表中的數(shù)據(jù)。將某個用戶數(shù)據(jù)庫啟用為發(fā)布數(shù)據(jù)庫或訂閱數(shù)據(jù)庫時,便會在該數(shù)據(jù)庫中創(chuàng)建視圖。 從復(fù)制拓撲中刪除用戶數(shù)據(jù)庫時,便會刪除該數(shù)據(jù)庫中的所有復(fù)制對象。 訪問復(fù)制元數(shù)據(jù)的首選方法是使用復(fù)制存儲過程。
動態(tài)管理視圖和函數(shù)返回特定于實現(xiàn)的內(nèi)部狀態(tài)數(shù)據(jù)。在未來的 SQL Server 版本中,它們的架構(gòu)和返回的數(shù)據(jù)可能會發(fā)生更改。因此,未來版本中的動態(tài)管理視圖和函數(shù)可能與 SQL Server 2008 中的動態(tài)管理視圖和函數(shù)不兼容
動態(tài)管理視圖和函數(shù)分為兩種類型:
服務(wù)器范圍內(nèi)的動態(tài)管理視圖和函數(shù)。此類型需要具有該服務(wù)器的 VIEW SERVER STATE 權(quán)限。
數(shù)據(jù)庫范圍內(nèi)的動態(tài)管理視圖和函數(shù)。此類型需要具有該數(shù)據(jù)庫的 VIEW DATABASE STATE 權(quán)限。
查詢動態(tài)管理視圖或函數(shù)需要對于對象具有 SELECT 權(quán)限以及 VIEW SERVER STATE 或 VIEW DATABASE STATE 權(quán)限。這樣您可以有選擇地限制用戶或登錄名對動態(tài)管理視圖和函數(shù)的訪問。為此,首先在 master 中創(chuàng)建用戶,然后拒絕該用戶對不希望被訪問的動態(tài)管理視圖或函數(shù)的 SELECT 權(quán)限。此后,無論該用戶的數(shù)據(jù)庫上下文如何,用戶都將無法選擇這些動態(tài)管理視圖或函數(shù)。
注意:由于 DENY 的優(yōu)先級高,所以如果用戶被授予 VIEW SERVER STATE 權(quán)限但被拒絕 VIEW