変数を使用してデータベースのユーザー名とパスワードをパスワードで保護されたプログラムに保存し、それらをパラメーターとして渡し、データベースに情報を送信する引数として 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 = ""
変数を使用してデータベースに接続できない理由を理解してくれる人はいますか?