1

ユーザー名/パスワードを使用して、Excel から SQL Server に接続できるようにする必要があります。私は指定しました:

'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Driver=SQL Server;Server=SERVER\SERVER;Database=we_ci_db; Uid = genericReadWrite; Pwd=XYZ;"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select TOP 1 * from tblUsers WHERE alias='" & "username" & "'"

    'Debug.Print strSQL
'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL

'Copy Data to Excel'
    Sheets("Sheet1").Range("A4").CopyFromRecordset (objMyRecordset)

このコードは、いくつかの基本的な詳細を「システム」タブにコピーし、いくつかのフラグ「UserID、SystemAccess」などを更新してから、セキュリティのためにパスワード ハッシュを削除します。

今までは問題なく機能していたと思っていましたが、どうやら Windows 認証に戻っていたようです (私のチームと私は、SQL Server のユーザーとして明示的にリストされています。

しかし、サーバーに NT ログインとして明示的に追加されていない人を取得すると、機能しません。サーバーが混合認証用に設定されていることに注意してください。

Excelでは、-2147467259 - [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database "we_ci_db" requested by the login. The login failed.

サーバーログには次のように書かれています: Login failed for user 'DOMAIN\user'. Reason: Failed to open the explicitly specified database. [CLIENT: xx.xx.xx.xx]

バグが発生し始めているため、これを機能させるための支援をいただければ幸いです。サーバーがユーザー名を無視している場合でも、接続文字列は少なくとも部分的に機能しますが、それが SQL Server の問題なのか接続文字列の問題なのかはわかりません。

4

0 に答える 0