簡體   English   中英

為什么無法將Windows登錄名的默認架構更改為用戶架構

[英]Why is it not possible to change the default schema to user schema for the Windows Login

Windows登錄的屬性

在這張照片中,您可以看到我是否使用Windows身份驗證登錄,默認用戶和架構是dbo。

我有一個名為trunk2的數據庫,其默認用戶為trunk2,默認模式為trunk2。

如果我以“ trunk2”身份登錄,則可以訪問架構“ trunk2”作為默認架構

但是,如果我使用Windows身份驗證登錄,則無法將架構“ trunk2”填充為數據庫trunk2的默認架構。

它正在將模式“ dbo”填充為默認模式。 為什么呢

如何使用Windows登錄名登錄並訪問架構“ trunk2”作為數據庫“ trunk2”的默認架構?

請參見下圖,對於登錄名“ trunk2”,在訪問數據庫“ trunk2”的默認架構“ trunk2”和默認用戶“ trunk2”時我沒有問題

如果我以trunk2身份登錄,我可以看到默認用戶和架構為trunk2

您不能將SQL Server中的默認架構分配給Windows身份驗證的用戶。

為什么? 這是設計使然。

查看以下鏈接:

http://support.microsoft.com/en-us/kb/918346

這有點像Microsoft BS ...鑒於我們已經還原了帶有一組與“ dbo”相關聯的表的數據庫,並在客戶端應用程序中創建了一些存儲過程(使用“可信連接”后)將它們放入域中\\ username架構,雖然不是SQL Management Studio中的組條目,但並未放入dbo中,顯然已將“ dbo”關聯為默認架構。

因此,在存儲過程創建后執行存儲過程會給我帶來一個丑陋的錯誤:“存儲過程與表的模式不同”和空結果集。 但是,SQL Server報告的錯誤級別不夠高,無法創建可能在try /錯誤代碼序列中捕獲的異常...。如果不是錯誤,則客戶端應用程序中會丟失數據。 非常丑陋,非常丑陋。

一種解決方法是使用“更改架構dbo傳輸[domain \\ username]。[sp名稱]”修復剛創建的存儲過程的架構成員身份,但使用大量Windows用戶,這給我帶來了管理上的噩夢。仍在SQL Server 2014中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM