未为数据访问配置SQL Server

未为数据访问配置SQL Server,sql,sql-server,tsql,vb6,Sql,Sql Server,Tsql,Vb6,我正在从VB6应用程序运行SQLServer2005数据库。我连接到数据库 通过ODBC DSN 我将运行SQL server默认实例的计算机从“软件”重命名为“IT”。然后我运行sp_dropserver和sp_addserver存储过程来重命名实例 重新启动SQL Server服务时,服务器能够识别新的SQL Server名称 将ODBC数据源名称配置为新名称后,连接正常。我能够运行我的应用程序并通过ADO记录集读取记录。但是,我无法使用.update方法更新任何记录集。我得到了以下错误未为

我正在从VB6应用程序运行SQLServer2005数据库。我连接到数据库 通过ODBC DSN

我将运行SQL server默认实例的计算机从“软件”重命名为“IT”。然后我运行
sp_dropserver
sp_addserver
存储过程来重命名实例

重新启动SQL Server服务时,服务器能够识别新的SQL Server名称

将ODBC数据源名称配置为新名称后,连接正常。我能够运行我的应用程序并通过ADO记录集读取记录。但是,我无法使用
.update
方法更新任何记录集。我得到了以下错误<代码>未为数据访问配置SQL Server

如何在重命名的服务器实例上启用数据访问?

您应该能够对任何链接的服务器运行此操作,但不能。它不是链接服务器。是本地的

EXEC sp_serveroption 'YourServer', 'DATA ACCESS', TRUE

这篇文章很老了,但也许有人会发现它。 我写了一篇关于此选项的文章,它可以在本地和链接服务器上设置。

使用此use master

exec sp_serveroption“服务器名称”、“数据访问”、“true”
去

为复制生成的链接服务器仍然显示相同的错误

我只想补充前面的答案,至少在这里,我需要在这两个地方启用数据访问

例如:

有服务器A和服务器B

在服务器A上 我有一个链接服务器LB,它将我从服务器a链接到服务器B

我需要执行以下操作:

--在服务器A上

exec sp_serveroption 'LB', 'data access', 'true'
--在服务器B上

exec sp_serveroption 'B', 'data access', 'true'

我刚刚遇到这个错误,发现它是由我试图对本地服务器(doh!)运行OpenQuery引起的。将服务器名称更改为实际链接服务器的名称解决了我的问题。

只需转到链接服务器属性>服务器选项>数据访问-->true

适用于SQL Server 2014


关于

这样做是否会使服务器暴露于SQL注入或其他安全问题?如果存储过程使用的动态sqlIs“thrue”应为“true”,则不起作用?也许有人会编辑答案?一个更好的修复方法是在不需要的时候不使用OpenQuery。