gbe*_*ven 5 sql sql-server-2008-r2 excel-2016
我正在尝试将凭据嵌入到我的 SQL Server 2008R2 数据库上的帐户的 Excel 2016 工作簿中,该帐户对某些存储过程具有执行权限,以向最终用户提供只读数据。用户帐户本身无权访问数据库,其想法是将此只读帐户的凭据嵌入到 Excel 电子表格中,用户只需单击“全部刷新”即可获取从存储过程返回的最新数据.
澄清一下,我不在乎用户是否知道帐户的密码 - 这不是问题。我只是不想让他们不得不输入密码来刷新数据。
这是我迄今为止在 Excel 中尝试过的:
我不认为我会在这里输入任何内容,因为我在构建查询字符串时已经输入了凭据,但我还是输入了,因为似乎需要输入某些内容。我将 Excel 文件交给另一个用户,并且肯定拒绝了足够的访问,因为它默认使用他们当前的 Windows 登录来访问数据库。
是什么赋予了?我有一个同事有一个 Excel 2010 文件,他们可以进入并编辑连接字符串属性而不会出现问题,并且他们的文件可以工作。我怎样才能让它在 Excel 2016 中工作?
我真的很感激你们能提供的任何帮助!
编辑:这个问题似乎并不遥远..有谁知道如何做到这一点?我觉得应该很简单。
小智 5
迟到总比不到好?您需要使用旧版“Microsoft Query”(而不是 Power Query)来创建数据连接。MS 已明确删除了在 Power Query 数据源的连接字符串(在 ODC 文件中 - 忽略)中存储用户名和密码的功能。
创建:
获取数据 > 从其他来源 > 从 Microsoft Query
您可以访问(和编辑)连接字符串(连接属性 -> 定义) - 并以这种方式永久(非安全地)存储密码。
也通过 VBA(用于现有连接)
With ActiveWorkbook.Connections("yourconnection").ODBCConnection
.Connection = _
"ODBC;DRIVER=SQL Server;SERVER=sql2012.servername.com,99999;UID=username;PWD=password"
.SavePassword = True
End With
Run Code Online (Sandbox Code Playgroud)
会喜欢 O365 的方法。