在 Excel 2016 (O365) 中嵌入 SQL 服务器凭据以按需刷新数据

Embed SQL Server Credentials in Excel 2016 (O365) to Refresh Data On-Demand

我正在尝试将凭据嵌入 Excel 2016 工作簿,用于我的 SQL Server 2008R2 数据库上的一个帐户,该数据库对某些存储过程具有执行权限,以向最终用户提供只读数据。用户帐户无权访问数据库本身,想法是将此只读帐户的凭据嵌入到 excel 电子表格中,用户只需单击“全部刷新”即可返回最新数据来自存储过程。

澄清一下,我不关心用户是否知道帐户密码 - 这不是问题。我只是不希望他们必须输入密码才能刷新数据。

这是我目前在 Excel 中尝试过的内容:

我不认为我会在这里输入任何内容,因为我在构建查询字符串时已经输入了凭据,但我还是输入了,因为它似乎需要输入一些东西。我将 Excel 文件移交给另一个用户,并且确定足够的访问被拒绝,因为它默认使用他们当前的 Windows 登录名来访问数据库。

什么给?我有一个同事有一个 Excel 2010 文件,他们可以在其中毫无问题地进入并编辑连接字符串属性,并且他们的文件可以正常工作。我怎样才能让它在 Excel 2016 年工作?

非常感谢你们提供的任何帮助!

编辑:这个问题似乎并不遥远..有谁知道如何做到这一点?感觉应该挺简单的。

迟到总比不到好?您需要使用旧版 "Microsoft Query"(而不是 Power Query)来创建数据连接。 MS 已明确删除使用 Power Query 数据源在连接字符串(在 ODC 文件中 - 忽略)中存储用户名和密码的功能。

要创建:
获取数据 > 从其他来源 > 从 Microsoft Query

您可以访问(和编辑)连接字符串(连接属性 -> 定义)- 并以这种方式永久存储密码 (non-securely)。

也通过 VBA(对于现有连接)

With ActiveWorkbook.Connections("yourconnection").ODBCConnection

    .Connection = _
    "ODBC;DRIVER=SQL Server;SERVER=sql2012.servername.com,99999;UID=username;PWD=password"
    .SavePassword = True

End With

想要 O365 的方法。