为什么无法将默认架构更改为Windows登录的用户架构

时间:2015-04-07 00:16:22

标签: sql-server database sql-server-2012

the properties of the windows login

在此图片中,您可以看到我是否使用Windows身份验证登录,默认用户和架构是dbo。

我有一个名为trunk2的数据库,其默认用户是trunk2,默认架构是trunk2。

如果我以“trunk2”身份登录,我可以访问架构“trunk2”作为默认架构

但是如果我使用Windows身份验证登录,我无法将模式“trunk2”填充为数据库trunk2的默认模式

它将模式“dbo”填充为默认模式。为什么?

如何使用Windows登录登录并访问架构“trunk2”作为数据库“trunk2”的默认架构?

请参见下图,登录“trunk2”,访问数据库“trunk2”的默认架构“trunk2”和默认用户“trunk2”没有问题

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

2 个答案:

答案 0 :(得分:0)

您无法将SQL Server中的默认架构分配给经过Windows身份验证的用户组。

为什么呢?这是设计的。

请看以下链接:

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

答案 1 :(得分:0)

这是一种Microsoft BS ......鉴于我们已经使用一组与" dbo"相关联的表恢复了数据库。并在我们的客户端应用程序中创建一些存储过程(在使用"可信连接"之后)将它们放入域\用户名模式,而不是dbo,尽管它在SQL管理工作室中的组条目明显关联" DBO"作为默认架构。

因此,在创建之后执行存储的过程会给我带来一个难看的错误"存储过程与表格#34;不同。和一个空的结果集。但是,SQL服务器报告的错误级别不足以创建可能在try / error代码序列中捕获的异常....当它不是错误时,客户端应用程序中的数据丢失。非常难看,非常难看。

解决方法是使用" alter schema dbo transfer [domain \ username]修改新创建的存储过程的模式成员资格。[sp name]"但是对于Windows用户而言,这让我成了一个行政噩梦......而且这仍然在SQL Server 2014中