在 SQL Server 2012 版本上,可以定義 Windows 群組的預設結構描述。
但是在先前的版本,是無法定義 Windows 群組的預設結構描述。
準備工作:
步驟01. 建立Windows群組:WG1。
步驟02. 建立Windows登入帳戶:w1,隸屬於此Windows群組:WG1。
步驟03. 將此Windows群組:WG1,設定可以存取SQL Server。
步驟04. 設定此Windows群組:WG1在Northwind資料庫是隸屬於db_owner群組。
步驟05. 使用Windows登入帳戶:w1,登入到系統,並且建立資料表。
使用 SQL Server 2008 R2 版本為例
-- 01_SQL Server 2008_資料表
-- 02_SQLServer2008_使用者
-- 03_SQLServer2008_結構描述
-- 04_SQLServer2008_資料庫使用者_ 群組帳戶_預設結構描述
使用 SQL Server 2012 版本為例
-- 05_SQLServer2012_資料表
-- 06_SQLServer2012_使用者
-- 07_SQLServer2012_結構描述
-- 08_SQLServer2012_群組帳戶_指定預設結構描述為dbo
若是未指定此群組帳戶的預設結構描述
使用 SQL Server 2012 版本為例
-- 09_SQLServer2012_資料表
-- 10_SQLServer2012_使用者
-- 11_SQLServer2012_結構描述
-- 12_SQLServer2012_資料庫使用者_群組帳戶_沒有指定預設結構描述
若要修正這問題:
1. 刪除此Windows使用者帳戶、結構描述、所屬物件。
2. 重新設定此Windows群組帳戶的預設結構描述。
預設結構描述(Default Schema)
預設結構描述是伺服器在解析這個資料庫使用者的物件名稱時,所搜尋到的第一個結構描述。
除非另有指定,否則預設結構描述是此資料庫使用者建立之物件的擁有者。
如果使用者有預設結構描述,則使用預設結構描述。
如果使用者沒有預設結構描述,但使用者是有預設結構描述之群組的成員,則使用群組的預設結構描述。
如果使用者沒有預設結構描述,而是有預設結構描述之多個群組的成員,將使用最低 principle_id 之 Windows 群組的結構描述 (您無法明確選取其中一個可用的預設結構描述當做慣用結構描述)。
如果無法判斷使用者的預設結構描述,將使用dbo結構描述。
DEFAULT_SCHEMA可以在它所指向的結構描述建立之前設定。
當您建立對應到憑證或非對稱金鑰的使用者時,不能指定DEFAULT_SCHEMA。
如果使用者是系統管理員 (sysadmin) 固定伺服器角色的成員,則會忽略DEFAULT_SCHEMA的值。
系統管理員 (sysadmin) 固定伺服器角色的所有成員都有預設的dbo結構描述。
參考資料
CREATE USER (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms173463.aspx
沒有留言:
張貼留言