Sql server 在VBA中从Excel连接到SQL Server时出现问题
我需要能够使用用户名/密码从Excel连接到SQL Server。我已指明:Sql server 在VBA中从Excel连接到SQL Server时出现问题,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我需要能够使用用户名/密码从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=SE
'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驱动程序][SQL Server]无法打开登录请求的数据库“we\u ci\u db”。登录失败。
服务器日志显示:
用户“域\用户”登录失败。原因:无法打开显式指定的数据库。[客户端:xx.xx.xx.xx]
我将非常感谢您的帮助,因为它开始困扰我。我不知道这是SQL Server问题还是连接字符串问题,尽管连接字符串至少部分起作用,即使服务器忽略了用户名。有试图登录的用户有权使用“we\u ci\u db”database?genericReadWrite作为SQL用户(通过用户映射)具有访问权限,该用户在服务器/db上未列为NT用户。