0

有两个 AD 帐户,admin1 和 admin2。两者都登录到相同的计算机,都打开 SQL Server Management Studio 并以相同的 SQL 用户身份登录到相同的 SQL 服务器(使用 SQL Server 身份验证,不使用集成安全性),并且都运行相同的查询:“SELECT * FROM视图 1"。但是,admin1 接收到许多结果(正确的结果集),而 admin2 接收到一个空结果集。这发生在域中的每台计算机上,无论 Windows 版本、有线/无线连接等如何。

为什么会这样?使用 SQL Server 身份验证时,SSMS 不应该与 Windows 帐户无关吗?任何帮助,将不胜感激。

4

2 回答 2

1

我遇到的问题是 Microsoft Dynamics CRM 的结果,而不是 SQL Server 本身。我使用的是过滤视图,它向不使用 Windows 身份验证的任何用户返回零结果。我不确定我是如何得到上面提到的结果的,但是改天再试一次,无论我使用什么 Windows 帐户,我都无法通过 SQL 身份验证获得结果。同样,使用 Windows 身份验证登录时,我总是能够获得结果。

于 2011-10-27T14:48:42.540 回答
1

您可以使用原始表或破解底层视图框架,方法是手动插入将域名显示为 SQL Server 身份验证登录 ID 的记录,并且授予的不是 CRMReaderRole 而是标准的 DQL 角色。看看美妙的 fn_FindUserGuid 函数,它查找所有内部视图连接到的 SystemGuid。只是捏造这张唱片和其他一些唱片和你的好。如果你对他们的系统进行逆向工程,你会发现有一种方法可以欺骗系统。

它本质上只是 SystemUserBase、SystemUserPrincipals、UserSettingsBase。

显然这不是微软推荐的。¯(°_°)/¯ 但是,当您需要一个共享服务器上的 ODBC 连接,该服务器向美妙的 CRM 世界之外的许多用户提供通用报告时,您需要这样做。除了将数据复制到另一个数据库之外,您不会找到另一种方法,但当然要记住动态是非常动态的并且经常变化。祝你好运同步环境。

在我看来,这个系统的设计显然是为了让用户转向微软的产品。并不是说如果我拥有微软我不会这样做。当你被迫破解时,你被迫破解。

于 2012-04-30T14:10:02.067 回答