2015-04-07 85 views
0

the properties of the windows login爲什麼無法更改默認模式到用戶模式的Windows登錄

在這張圖片中,你可以看到,如果我登錄使用Windows身份驗證,默認的用戶和模式是DBO。

我有一個名爲trunk2的數據庫,其默認用戶是trunk2,默認架構是trunk2。

如果我登錄爲「trunk2」,我可以訪問模式的「trunk2」作爲默認模式

但如果我登錄使用Windows身份驗證,我不能填充模式「trunk2」爲數據庫中繼2的默認模式

它將模式「dbo」填充爲默認模式。爲什麼?

如何使用Windows登錄名登錄並訪問架構「trunk2」作爲數據庫「trunk2」的默認架構?

在下面的圖片請參見登錄「trunk2」,我在訪問數據庫「trunk2」默認模式「trunk2」沒有問題,默認用戶「trunk2」

if I login as trunk2, I can see my default user and schema as trunk2

回答

0

您不能將SQL Server中的默認模式分配給Windows認證的用戶組。

爲什麼?它是由設計。

請看下面的鏈接:

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

+0

Windows身份驗證本身並不是一個問題,它使用Windows身份驗證通過*組成員資格授予訪問權限。如果將單個Windows用戶作爲登錄添加到SQL Server,則可以應用默認架構。 –

+0

是的,SQL用戶可以擁有默認模式,但是如果我們想要使用Windows登錄訪問這些用戶,我們將無法訪問他們定義的默認模式,但只有模式「dbo」 – user3790568

+0

我想訪問數據庫「trunk2」通過Windows登錄,然後它通過訪問「dbo」給我提出問題,但不是分配模式。有沒有解決方法? – user3790568

0

這是有點微軟BS的......鑑於我們已經恢復了數據庫相關的一組表來「DBO」,並創造了一些我們的客戶端應用程序中的存儲過程(在使用「可信連接」之後)將它們放入域\用戶名模式中,而不是放入dbo中,儘管它在SQL管理工作室中的組條目顯然與作爲默認模式的「dbo」相關聯。

因此,在它們的創建之後執行存儲的過程會讓我產生一個醜陋的錯誤「存儲過程與表不同」和一個空結果集。但是,由SQL服務器報告的錯誤級別不夠高,無法創建可以在嘗試/錯誤代碼序列中捕獲的異常....並且當它不是錯誤時,則數據在客戶端應用程序中丟失。非常醜陋,非常醜陋。

解決方法是修復新創建的存儲過程的模式成員資格,使用「alter schema dbo transfer [domain \ username]。[sp name]」,但遇到了windows用戶的干擾,這讓我陷入了管理上的噩夢...... 。這仍然在SQL Server 2014中

相關問題