vbscript с использованием переменных при подключении к базам данных
Я пытаюсь использовать переменные, чтобы сохранить мои имя пользователя и пароль для моей базы данных в защищенной паролем программе, передать их в качестве параметров, а затем использовать их в VBScript в качестве аргументов, которые будут отправлять информацию в базу данных. Это не даст пользователю увидеть имя пользователя и пароль, которые защищают базу данных, и позволит им подделать ее.
Когда у меня есть имя пользователя и пароль в VBScript, он работает нормально.
strConnect = "PROVIDER=sqloledb.1;Data Source=myDatabase;Initial Catalog=myGroup;User ID=JoeSmith;Password=twinkles324"
Но когда я отправляю их в качестве параметров в VBScript, принимаю их в качестве аргументов и пытаюсь подключиться, я получаю сообщение об ошибке 80040E4D, в котором говорится "Ошибка входа пользователя" Имя пользователя "".
Dim Arg, conn, strConnect, Data1, Data2, Data3, Data4
Set Arg = WScript.Arguments
Username = Arg.Item(0)
Pswrd = Arg.Item(1)
Set conn = CreateObject("ADODB.Connection")
strConnect = "PROVIDER=sqloledb.1;Data Source=myDatabase;Initial Catalog=myGroup;User ID=Username;Password=Pswrd"
conn.Open strConnect
strSQL = "INSERT INTO MyTable (Data1, Data2, Data3, Data4)" VALUES ('" & Data1 & "', '" & Data2 & "', '" & Data3 & "', '" & Data4 & "')
conn.Execute strSQL
conn.Close
strSQL = ""
Может кто-нибудь помочь мне понять, почему я не могу использовать переменные для подключения к базам данных?
1 ответ
VBScript не собирается сканировать строковый литерал на предмет имен переменных. Вы должны поместить их вне строкового литерала:
strConnect = "PROVIDER=sqloledb.1;Data Source=myDatabase;Initial Catalog=myGroup;User ID=" & Username & ";Password=" & Pswrd
В противном случае вы пытаетесь войти с буквальным именем пользователя &Username