Excel到SQL安全

我在Excel模块中使用下面的VBA脚本来允许使用预编程的用户名和密码连接到SQL服务器。 连接运行一个基本的select查询,但是我需要隐藏或encryption密码。 我能想到的唯一方法是将密码隐藏在另一张表中,lockingVBA或从包含密码的共享驱动器调用文本文件。 然而这些方法似乎仍然不安全。 有谁知道更好的安全方法,可以在Excel VBA中实施?

Sub ConnectSqlServer()

Dim txt As String txt = Sheets("Sheet1").Range("D1").Value If txt Like "*[AZ]*" Or txt Like "*[;]*" Or txt Like "*[""]*" Then a = MsgBox("Invalid" & vbNewLine & "Try again", okonly + vbCritical, "SECURITY WARNING") Exit Sub Else End If Dim conn As ADODB.Connection Dim rs As ADODB.Recordset Dim sConnString As String sConnString = "Provider=SQLOLEDB;Data Source=TESTSQLSERVER2012;" & _ "Initial Catalog=MASTER;" & _ "User ID=LOGINREADUSER;" & _ "Password=123456789;" Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open sConnString conn.CommandTimeout = 0 Set rs = conn.Execute("SELECT [ACCOUNT],[NAME].[DOB]" & _ "from [MASTER].[dbo].[CUSTOMER]" & _ ";") If Not rs.EOF Then Sheets("Sheet1").Range("A4").CopyFromRecordset rs rs.Close Else MsgBox "Error: No records returned.", vbCritical End If If CBool(conn.State And adStateOpen) Then conn.Close Set conn = Nothing Set rs = Nothing End Sub 

你不能。 无论你如何处理密码,都无法对密码进行硬编码并使其安全无虞。 总是有从代码中提取密码的方法。

作为回应,要么有login提示,要么为SQL服务器使用内置的windows-auth。