如何在存储它的机器上获取 VBScript 到 运行?或者,我在这里做错了什么?

How do I get a VBScript to run on the machine where it is stored? Or, what am I doing wrong here?

我写了一个 SQL 查询,它必须 运行 在服务器上。要调用该查询,我使用存储在服务器上的 VBScript。当我 运行 来自服务器的脚本时,脚本 运行 没问题。但是,当我从我的本地计算机 运行 VBScript 时,我收到一条错误消息,指出它正在调用的 SQL 脚本的访问被拒绝。我似乎无法弄清楚。以下是我使用的 VBScript:

dim dbconn, connect, ObjFSO
connect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=DBName;Server=ServerName;Database=DBName;ID=USERID;Password=PASSWORD"
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set dbconn = CreateObject("ADODB.Connection")
dbconn.Open connect
dbconn.execute ObjFSO.OpenTextFile("\ServerName\FolderPath\FileName.sql").ReadAll,128
Set dbconn = Nothing

我得到的错误是:

注意:当我 运行 来自服务器的相同 VBScript 时,我没有收到上图中的错误消息。

有没有办法让这个程序只从存储它的服务器 运行?

我是不是漏掉了一些非常简单的东西?

也许您正在使用一组 Windows 凭据登录服务器并使用没有 SQL 访问权限的不同用户名登录到您的桌面?

无论如何,由于您使用的连接字符串表示 SSPI 安全,它将尝试使用您的 Windows 凭据对您进行身份验证,并完全忽略连接字符串中提供的用户名和密码.

试试这样的方法(参见 www.connectionstrings.com):

Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;
User Id=myUsername;Password=myPassword;

问题出在我尝试使用的用户 ID 上。我创建了一个新的用户 ID,它不使用 windows 身份验证来访问数据库并且 boom,它有效!