在此图片中,您可以看到我是否使用Windows身份验证登录,默认用户和架构是dbo。
我有一个名为trunk2的数据库,其默认用户是trunk2,默认架构是trunk2。
如果我以“trunk2”身份登录,我可以访问架构“trunk2”作为默认架构
但是如果我使用Windows身份验证登录,我无法将模式“trunk2”填充为数据库trunk2的默认模式
它将模式“dbo”填充为默认模式。为什么?
如何使用Windows登录登录并访问架构“trunk2”作为数据库“trunk2”的默认架构?
请参见下图,登录“trunk2”,访问数据库“trunk2”的默认架构“trunk2”和默认用户“trunk2”没有问题
答案 0 :(得分:0)
您无法将SQL Server中的默认架构分配给经过Windows身份验证的用户组。
为什么呢?这是设计的。
请看以下链接:
答案 1 :(得分:0)
这是一种Microsoft BS ......鉴于我们已经使用一组与" dbo"相关联的表恢复了数据库。并在我们的客户端应用程序中创建一些存储过程(在使用"可信连接"之后)将它们放入域\用户名模式,而不是dbo,尽管它在SQL管理工作室中的组条目明显关联" DBO"作为默认架构。
因此,在创建之后执行存储的过程会给我带来一个难看的错误"存储过程与表格#34;不同。和一个空的结果集。但是,SQL服务器报告的错误级别不足以创建可能在try / error代码序列中捕获的异常....当它不是错误时,客户端应用程序中的数据丢失。非常难看,非常难看。
解决方法是使用" alter schema dbo transfer [domain \ username]修改新创建的存储过程的模式成员资格。[sp name]"但是对于Windows用户而言,这让我成了一个行政噩梦......而且这仍然在SQL Server 2014中