繁体   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