我正在尝试使用 dsn(SQL Server 身份验证)将 perfmon 日志(Windows Server 2008)记录到 SQL Server 2005(Windows Server 2003)。
在启动性能计数器时我收到错误:
“使用 [Microsoft][ODBC SQL Server 驱动程序][SQL Server] 调用 SQLAllocConnect 失败,用户 '' 登录失败。该用户与受信任的 SQL Server 连接无关。”
请帮忙。
答案1
确保 Perfmon 尝试通过域帐户而不是本地帐户进行连接(除非 SQL Server 是在本地安装的)。
您还可以尝试在 SQL Server 中授予计算机的域帐户权限。在 SQL Server 中为 DOMAIN\ComputerName$ 添加新的登录名。$ 很重要,所以不要遗漏它。
答案2
此错误信息通常意味着您的 SQL Server 已配置为在“Windows 身份验证模式(Windows 身份验证)”下运行,并且不允许使用 SQL 帐户。
我想你必须将 SQL 服务器的身份验证模式从“Windows 身份验证模式(Windows 身份验证)”更改为“混合模式(Windows 身份验证和 SQL Server 身份验证)”。
如果您想使用“本地”SQL Server 用户,则必须将服务器更改为混合身份验证。
看起来 Perfmon 并未按照您指定的凭据运行,而是作为网络服务运行。
为了解决这个问题,服务必须以具有关联 SQL Server 凭据的 Windows 用户身份运行。
您可以在以下位置找到更多信息Microsoft 讨论板上的这个主题。
答案3
在我的案例中,问题在于 PerfMon 所针对的远程计算机中缺少 DSN。您必须首先登录并配置 PerfMon 所要监控的计算机(远程计算机)中的“DSN”和“数据收集器集”。然后,您可以在本地计算机中打开 Perfmon,将目标更改为远程计算机并开始监控。