【发布时间】:2016-08-29 07:38:40
【问题描述】:
我正在创建一些 Excel 报告,并且我正在尝试加密我的 SQL 连接。在服务器端,我已经正确设置了所有内容,并且通过 Microsoft 管理工作室,我能够建立安全连接。但是我找不到任何excel的解决方案。我想我需要Encrypt = yes 之类的东西,还是这个 ADODB.Connection 不支持 SSL?
Private Function GetDataFromADO(ByVal Sel As String) As ADODB.Recordset
'Declare variables'
Dim objMyConn As ADODB.Connection
Dim objMyCmd As ADODB.Command
Dim objMyRecordset As ADODB.Recordset
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=" & sqlServer & ";Database=" & _
sqlDB & ";User ID=" & sqlUsername & ";Password=" & sqlPassword & ";"
Dim s As String
s = objMyConn.ConnectionString
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = Sel
objMyCmd.CommandType = adCmdText
'Open Recordset'
Set objMyRecordset.Source = objMyCmd
objMyRecordset.Open
Set GetDataFromADO = objMyRecordset
提前致谢
【问题讨论】:
-
据我所知,与 SQL Server 的连接不是由 Excel 而是由 Windows 处理的(在安全、网络、加密、身份验证等方面)。您甚至无法在 Excel / ADO 中设置连接超时。好吧,你当然可以使用
ADODB.Connection.ConnectionTimeout = 5000。但是您最好跳过该行,因为它不会产生任何影响。因此,如果我没有完全弄错,那么您应该关注您的 SQL 设置并确保它只允许加密连接:msdn.microsoft.com/en-us/library/ms191192.aspx 那么您应该可以使用Trusted_Connection=yes。
标签: excel vba ssl encryption