1
我在Excel模塊中使用下面的VBA腳本來允許使用預編程的用戶名和密碼連接到SQL服務器。連接運行一個基本的選擇查詢,但是我需要隱藏或加密密碼。我能想到的唯一方法是將密碼隱藏在另一張表中,鎖定VBA或從包含密碼的共享驅動器中調用文本文件。但是,這些方法似乎仍不安全。有誰知道可以在Excel VBA中實現的更好的安全方法嗎?Excel到SQL安全性
子ConnectSqlServer()
Dim txt As String
txt = Sheets("Sheet1").Range("D1").Value
If txt Like "*[A-Z]*" 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
即使那時VBA可能會被黑客入侵。你可以添加一個非密碼或訪客用戶訪問只有一個視圖,這是你的SQL? –
提示用戶輸入每個實例的UserId和Password,或者讓您的SQL服務器使用Windows帳戶進行身份驗證。其他一切都是不安全的。 – cyboashu