首页 > 解决方案 > SSMS SQL 以与 Excel VBA 不同的用户身份运行

问题描述

我可以手动右键单击 SSMS 并选择“以其他用户身份运行”,然后输入我的 Windows 身份验证用户和密码,这将成功打开与所需服务器和数据库的连接。

有没有办法从 Excel VBA 调用“以其他用户身份运行”选项并传递用户和密码详细信息?

以不同用户身份运行

我目前拥有的VBA代码如下:

Public Sub SQL_Data()

Dim Conn As New ADODB.Connection
Dim SystemSever, Systemdb As String
Dim RS As ADODB.Recordset
Dim CMD As ADODB.Command
Dim SQL_1 As String

SystemServer = "ServerName"
Systemdb = "DBName"

Set Conn = New ADODB.Connection
Conn.CommandTimeout = 60000
Conn.ConnectionTimeout = 60000
Conn.Open "DRIVER={SQL Server};SERVER=" & SystemServer & ";DATABASE=" & Systemdb & ";Trusted_Connection=Yes;OPTION=16427"

Set RS = New ADODB.Recordset
Set CMD = New ADODB.Command

With CMD
    .ActiveConnection = Conn
End With

With RS
    .CursorLocation = adUseClient
End With

SQL_1 = "SELECT ....... " & _
        "FROM .......... "
RS.Open SQL_1, Conn, adOpenStatic

If WorksheetFunction.CountA(Range("Table_Data")) > 1 Then Range("Table_Data").Delete
Range("Table_Data").CopyFromRecordset RS

RS.Close
Set CMD = Nothing

End Sub

标签: sql-serverexcelvbaauthenticationrunas

解决方案


推荐阅读