【问题标题】:SQL Server SMO on IIS with Windows Auth具有 Windows 身份验证的 IIS 上的 SQL Server SMO
【发布时间】:2011-01-31 21:22:21
【问题描述】:

当我在 IIS 上启用 Windows 身份验证并尝试运行一些数据库更新脚本时,我遇到了一个奇怪的错误:

用于模拟的令牌无效 - 它 不能复制。

我没有启用任何显式模仿。

我已将其范围缩小为与 SMO 有关,因为当我更改为普通的 SqlClient 并使用 ExecuteNonQuery 时,问题就消失了。不幸的是,这不是一个长期的解决方案,因为更新脚本必须能够包含标准 SqlClient 无法识别的“GO”关键字。

【问题讨论】:

  • 您总是可以使用“GO”语句解析您的输入,并将其用作现在执行 SQL 语句的指示符,然后再继续执行更多 SQL 行……这样,您可以使用标准 SqlClient 类...
  • 谢谢,我会考虑的,尽管这是一段非常关键的代码,我宁愿让它尽可能简单。
  • 我必须非常确定解析器正确处理了文本字符串。我相信我们会有类似 update help set value = " ... GO .." where ...

标签: asp.net sql-server iis smo windows-authentication


【解决方案1】:

IIS 工作进程以某些用户身份运行。当您使用 Windows 身份验证时,您正在隐式地模拟该用户。

如果您的 SQL 服务器位于不同的主机上,这可能还不够好。我认为冒充用户只能访问本地资源。

http://msdn.microsoft.com/en-us/library/ff647405.aspx#paght000025_usingimpersonation

SQL Server 是否使用 Windows 身份验证?

【讨论】:

  • 目前不支持,但理想情况下我们希望支持机器人 SQL Server 和 Windows 身份验证。
  • 谢谢你,仍然没有解释 SMO 和普通 SqlClient 之间的区别,或者让我知道接下来我应该尝试什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 2020-12-28
  • 1970-01-01
相关资源
最近更新 更多