簡體   English   中英

SQL Server-數據未寫入正確的架構

[英]SQL Server - data is not written in to the correct schema

在我的數據庫中,我有兩個模式-默認.dbo和另一個稱為.ptx。兩個模式中的幾乎所有表都是相同的。 我們需要兩個模式來分別處理兩個不同產品的數據。 我如何在這兩種模式之間切換是通過從應用程序級別更改SQL Server登錄用戶。 即,我們有兩個SQL用戶ANF_DEFAULT和ANF_PTX。 如果該產品為默認用戶,則用戶為ANF_DEFAULT;如果該產品為PTX,則將用戶切換為ANF_PTX,並相應地創建SqlConnection。

到目前為止,一切工作正常,兩個模式已正確填充。 但是在進入新的生產環境后,PTX產品數據突然進入了.dbo模式而不是.ptx模式。 在我的本地環境中,這仍然可以正常工作,但是該問題在生產中很明顯。 唯一可見的變化是我使用SQL Server 2008,在生產環境中運行SQL Server 2012,但我認為這幾乎不是問題。 我還檢查了ANF_PTX用戶的屬性:

USE [ANX_GLF]
GO

/****** Object:  User [ANF_PTX]    Script Date: 8/27/2014 5:29:04 AM ******/
CREATE USER [ANF_PTX] FOR LOGIN [ANF_PTX] WITH DEFAULT_SCHEMA=[PTX]
GO

請幫助我在這里找出問題。

我找出了這個問題的原因。 顯然,在新部署中,_CMS用戶看起來不錯,其默認架構指向.cms。 但是,問題出在SQL Server中的登錄FMSI_APP_CMS。 在此登錄名中,將FMSI_APP_CMS用戶分配給超級管理員角色。 當用戶是超級管理員時,其默認架構將被忽略,並且始終指向.dbo架構。 從登錄名中刪除超級管理員角色后,架構開關再次正常運行。 可以在下面找到關於此的更多信息: http : //msdn.microsoft.com/zh-cn/library/ms176060.aspx

它說:“如果用戶是sysadmin固定服務器角色的成員,則DEFAULT_SCHEMA的值將被忽略。sysadmin固定服務器角色的所有成員均具有默認架構dbo。”

暫無
暫無

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

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