gpt4 book ai didi

sql-server - 用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败 - MS SQL Server - 可能无法解决问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:36:55 26 4
gpt4 key购买 nike

为什么不在 dba.stackexchange 上询问:描述说它是针对专业人士的,而我不是,所以它有“针对爱好者”的部分。

我有一个错误“用户‘NT AUTHORITY\ANONYMOUS LOGON’登录失败”

这是一个常见错误,有多种可能的原因和解决方案。问题是我不了解数据库和服务器管理以及凭据身份验证主题,因此我需要花费大量时间来理解所说的和提议的内容。在我这样做之前,我想问一下,由于技术限制,我是否有可能无法解决问题。我现在将更详细地描述情况。

有一个带有数据库 Adb 和表 dbo.At 的 MS SQL Server A。我可以从中读到。还有一个MS SQL Server B,我可以在这里读写。

我在计算机上打开了 MS SQL Server Management Studio 2012。我与服务器 A 打开连接,查询“select * from Adb.dbo.At”,效果很好。该连接使用了 Windows 身份验证。我通过查询“select * from A.Adb.dbo.At”与服务器 B(以及 Windows 身份验证)建立连接,这导致了上述错误。

此时我确实拥有对 A 的读取权限,我具有对 B 的读取和写入权限。我可以从 A 导出数据,然后使用我的计算机将其导入 B,即我可以执行一种复制粘贴和我最终会得到我想要的。这两台服务器之间没有不可逾越的墙,我是中间人。我只是想让它更容易。在详细讨论 SPN、授权、Kerberos、Active Directory 和诸如此类的东西之前,我想问一下,假设我只有在 A 上读取和在 B 上读取/写入,我是否可能无法解决问题?

最佳答案

看来我遇到了“双跳”问题。

https://blogs.technet.microsoft.com/askds/2008/06/13/understanding-kerberos-double-hop/

我找到了解决方法。我可以在服务器 B 上使用服务器代理。使用它我可以使用服务器执行一些操作,例如查询其他服务器。代理作业属于特定类型(如 T-SQL 脚本)。对于特定的作业类型,代理可以在“运行方式”模式下运行作业(需要代理)。我创建了一个引用我正常 Windows 登录的代理。遗憾的是,T-SQL 脚本类型的作业无法在“运行方式”模式下执行。但是 PowerShell 类型的作业可以。 PowerShell 还可以执行 SQL 语句。因此,我创建了使用代理运行的 PowerShell 作业,命令为:

SQLCMD -Q "select * into Bdb.dbo.Bt from A.dbA.dbo.At" -E

这解决了我的问题。

关于sql-server - 用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败 - MS SQL Server - 可能无法解决问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35598144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com