我已经根据 BO 建立了一个数据仓库和数据收集。在服务器上运行的 Management Studio 中运行报告时会正确生成报告,但在另一台计算机上从 Management Studio 运行报告时会失败(该计算机使用 VPN 连接到 SQL Server 所在的网络)。错误信息是:
无法连接到服务器 xxxx --> 登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。
服务器使用混合模式身份验证。数据收集配置为使用 SQL 登录,并且尝试生成报告的登录也是 SQL 登录。它们与域无关。为什么我会收到此错误?
我已经确认这是报告如何在服务器上执行的问题——我通过使用两个虚拟机准确地重现了这个问题,这两个虚拟机都不在域中。
此外,我在 SQL 框上创建了一个测试用户(用户内置组的成员,仅此而已),以该用户身份在本地运行 Management Studio,使用 登录
sa
,并尝试运行报告。正如我所料,它失败了,并返回了错误Failed to connect to server MDWTestSQL. --> Login failed for user 'MDWTESTSQL\TestUser'
。这清楚地表明报告的实施仅对其中的某些部分使用 Windows 身份验证。因此,必须向运行 Management Studio 的 Windows 主体授予足够的 SQL 级别权限,即使您使用 SQL 登录对服务器进行身份验证也是如此。
有两种解决方法:
使用直通身份验证:在工作站上创建一个匹配的(用户名和密码)本地登录,并模拟本地登录远程运行 Management Studio。(我测试过这行得通。)
通过在两个盒子上创建新的匹配本地帐户来使用直通身份验证,并为新帐户设置 SQL 权限。
正如我在聊天中提到的,这个问题在 2012 Management Studio 中已“修复”——如果 Windows 帐户没有运行报告的权限,菜单中的报告将被隐藏。