通常,Analysis Services 的大多数用户不需要访问 Analysis Services 项目的基础数据源。 用户通常只需查询 Analysis Services 数据库中的数据。 但是,在数据挖掘的上下文(如基于挖掘模型执行预测)中,用户必须将挖掘模型的已学习数据与用户提供的数据联接在一起。 若要连接到包含用户提供的数据的数据源,用户使用包含 OPENQUERY (DMX) 或 OPENROWSET (DMX) 子句的数据挖掘扩展语言(DMX)查询。
若要执行连接到数据源的 DMX 查询,用户必须有权访问 Analysis Services 数据库中的数据源对象。 默认情况下,只有服务器管理员或数据库管理员有权访问数据源对象。 这意味着,除非管理员授予权限,否则用户无法访问数据源对象。
重要
出于安全原因,通过使用在 OPENROWSET 子句中打开的连接字符串来提交 DMX 查询已被禁用。
将数据源的读取权限进行设置
可以为数据库角色授予对数据源对象的访问权限,这些访问权限可以是无访问权限或读取权限。
在 SQL Server Management Studio 中,连接到 Analysis Services 实例,在对象资源管理器中展开相应数据库 的角色 ,然后单击数据库角色(或创建新的数据库角色)。
在“数据源访问”窗格中,找到数据源列表中的数据源对象,然后选择数据源的 Access 列表中的“读取”。 如果此选项不可用,请检查 “常规 ”窗格以查看是否选择了“完全控制”。 完全控制已提供权限,不能替代对数据源的权限。
处理数据源对象所用的连接字符串
数据源对象包含用于连接到基础数据源的连接字符串。 此连接字符串可以指定以下任一项:
指定用户名和密码
如果数据源对象使用的连接字符串指定用户名和密码,则可能需要创建多个数据源对象,每个对象都有不同的用户帐户。 创建多个数据源对象可让用户访问某些数据源对象,并阻止这些用户访问其他数据源对象。 Analysis Services 本身可以使用这些其他数据源对象来处理对象,例如多维数据集和挖掘模型。
指定 Windows 身份验证
如果数据源对象使用的连接字符串指定 Windows 身份验证,Analysis Services 必须能够模拟客户端。 如果数据源位于远程计算机上,则这两台计算机必须相互信任,以便使用 Kerberos 身份验证方法进行身份模拟,否则查询通常会失败。 有关详细信息,请参阅 为 Kerberos 约束委派配置分析服务。
如果客户端不允许模拟(通过 OLE DB 和其他客户端组件中的模拟级别属性),Analysis Services 将尝试与基础数据源建立匿名连接。 与远程数据源的匿名连接很少成功,因为大多数数据源不接受匿名连接。
另请参阅
多维模型中的数据源
连接字符串属性 (Analysis Services)
Analysis Services 支持的身份验证方法
授予对维度数据的自定义访问权限(Analysis Services)
授予多维数据集或模型权限(Analysis Services)
授予对单元格数据的自定义访问权限(Analysis Services)