2015-04-07 30 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中