从SSAS连接字符串传递一些(任何)类型的上下文信息到基础数据库

问题描述:

我想有一个选项来“模仿”在SQL数据库中模拟用户。分析服务器是否有连接字符串的任何部分进一步传递到底层数据库的连接字符串中?在我的情况下,SSAS实例使用直接查询来查询分析数据库。从SSAS连接字符串传递一些(任何)类型的上下文信息到基础数据库

有办法如何通过连接字符串某种情境的传递到SSAS本身,即:

  • CustomData
  • Extended Properties
  • Application Name

但是据我可以告诉没有任何东西被传递给底层的SQL数据库。


说来话长

我有对SQL级别“计算”权限的复杂系统 - 这是不会改变的。在内部,这是通过连接到SQL服务器的应用程序调用SET CONTEXT_INFO来设置用户上下文来实现的。为了使SSAS /表格/ DirectQueryMode报告正常工作,我需要像任何其他客户端应用程序一样设置SQL级别的上下文信息。尽管SSAS允许您设置某种可选的上下文(如连接字符串中的CustomData),但SSAS允许您创建自己的SQL提供程序,但您可以在其中设置此上下文(来自日志和实验),但似乎没有任何内容被传递到SQL数据库中。

+0

什么是SQL Server的版本的证书? –

+0

你如何使用SSAS?你是从.NET还是Report Server使用它? –

你在SSAS 2016?如果是这样,你绝对可以做到。请参阅1月份发布的SQL BI whitepaper on DQ。它包含有关如何工作的解释和说明。

从白皮书,

“当你使用DirectQuery,该机型拥有一个单一的连接,这 有假冒的特定配置(这是属性 impersonationMode在JSON文件,但它是称为假冒 SSMS中的信息,以及SSDT中的模拟)。“

我假设这些是你正在冒充的Windows用户。您需要Kerberos约束委派才能使其工作。

要设置这SSMS,去你的连接属性,找到模拟信息设置,并更改为使用当前用户