使用 LiveID 登录的 Windows 8 以访客身份验证远程 SQl Server

使用 LiveID 登录的 Windows 8 以访客身份验证远程 SQl Server

我有一个网络,其中有多个用户在多用户客户端/服务器模式下使用 Office Accounting 2009。OA 建立在 SQL Server 上。一台 PC 充当“服务器”并具有 SQl Server 实例,其他 PC 仅安装了应用程序而没有 SQL 实例,所有应用程序都远程连接到“服务器”上的 SQL 实例。

我在这里只是随意地使用了“服务器”一词,它只是一个普通的工作站,恰好被指定为服务器并运行 SQL 实例。没有 NT 域,所有用户帐户都是本地帐户。

OA 在多用户模式下的工作方式是,每个用户都需要在客户端和“服务器”电脑上拥有一个具有相同用户名和密码的本地帐户。这种方式一直运行良好,直到 Windows 8 出现。我使用我的“Microsoft 帐户”(又名 LiveID)登录 Windows 8。

Office Accounting 运行正常并尝试连接数据库,但失败,‘您无权执行此操作’。

在 SQL 日志中,我收到此错误:

2012-10-28 17:54:01.32 登录错误:18456,严重性:14,状态:11。
2012-10-28 17:54:01.32 登录 用户“SERVER\Guest”登录失败。原因:基于令牌的服务器访问验证因基础架构而失败

SERVER是服务器的主机名。所以它似乎是以“Guest”身份进行身份验证的??

为了验证这一点,我在“服务器”PC 上启用了 Guest 帐户,然后在 Office Accounting 中将 Guest 添加为允许的用户(这只是在 SQL 中创建用户并赋予其适当的数据库角色)。

果然,我的 Windows 8 PC 在使用 Office Accounting 时能够连接到数据库。

显然,从安全和审计的角度来看,让用户以“访客”身份进行身份验证是很糟糕的做法。所以我需要一些关于如何解决这个问题的想法。我尝试将 Windows 8 PC 切换到“本地帐户”,这也有效,但需要放弃 Windows 8 PC 上的重要功能。我真正需要的是一种强制 Windows 8 PC 在连接到远程 SQL 实例时使用一组特定凭据的方法。Office Accounting 采用登录用户名,这是我的 LiveID,不对应于任何 Windows 用户名。

有人解决过这个问题吗?

答案1

除去 Office Accounting,您可能希望通过使用本地用户名和密码登录 Windows 8 计算机并连接到目标计算机上的共享来测试这一点。通常,Windows 将尝试使用当前凭据进行连接。如果这不起作用,这似乎是 Windows 问题,与 SQL 或 Office Accounting 无关。可能更容易测试和本地化。

下一步是先尝试建立连接,例如net use x: \\targetcomputer\sharename,然后运行 ​​Office Accounting。

答案2

虽然办公室会计不允许通过其用户界面进行此操作,我发现手动将我的完整 LiveID(完整电子邮件地址格式)添加为数据库登录名(在 OA 数据库上具有适当的映射和用户角色)使我能够成功地通过数据库服务器进行身份验证。使用 SQL Server 身份验证和与使用 LiveID 登录时相同的密码添加登录名。

我不确定为什么我以前从来没有想到过这一点 - 也许是因为使用电子邮件地址作为 SQL 登录名看起来很奇怪。

答案3

看来您已成功通过 Windows LiveID 帐户登录 Windows 8 来打开公司文件。但是,我按照您的建议在 Microsoft SQL Server Management Studio 中创建了新的登录帐户。不幸的是,我尚未能够设置并运行它。

这是来自 SQL 服务器日志的记录。“用户 '' 登录失败。该用户未与受信任的 SQL Server 连接关联。[客户端:192.168.1.102]”

好吧,如果我将 Windows 8 用户帐户更改为本地帐户,并在运行 Windows XP 的服务器上创建相同的帐户,那么一切都可以正常工作。

我们非常欢迎针对该问题的帮助。

祝好!Sas

相关内容