授予数据源对象的权限 (Analysis Services)

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

通常,SQL Server Analysis Services的大多数用户不需要访问SQL Server Analysis Services项目基础的数据源。 用户通常只查询SQL Server Analysis Services数据库中的数据。 但是,在数据挖掘上下文中(如根据挖掘模型执行预测),用户必须将挖掘模型的已学习数据与用户提供的数据联接起来。 为了连接到包含用户提供的数据的数据源,用户使用包含 OPENQUERY (DMX) 和 OPENROWSET (DMX) 子句的 DMX (数据挖掘扩展插件) 查询。

若要执行连接到数据源的 DMX 查询,用户必须有权访问SQL Server Analysis Services数据库中的数据源对象。 默认情况下,只有数据库管理员或服务器管理员具有访问数据源对象的权限。 这意味着,除非管理员授予权限,否则用户将不能访问数据源对象。

重要

出于安全方面的考虑,系统禁止在 OPENROWSET 子句中使用公开连接字符串来提交 DMX 查询。

设置对数据源的读取权限

可以使数据库角色无权访问数据源对象,也可以授予其读取权限。

  1. 在 SQL Server Management Studio,连接到 SQL Server Analysis Services 实例,在对象资源管理器中展开相应数据库的角色,然后单击数据库角色 (或) 创建新的数据库角色。

  2. 在“数据源访问”窗格 ,找到“数据源”列表中的数据源对象 ,然后在该数据源的“访问”列表 中选择“读” 。 如果此选项不可用,请检查“常规” 面板,以查看是否已选择“完全控制”。 “完全控制”已在提供权限,你不能覆盖数据源上的权限。

使用数据源对象使用的连接字符串

数据源对象包括用于连接到基础数据源的连接字符串。 此连接字符串可以指定以下内容之一:

  • 指定用户名和密码

    如果数据源对象使用的连接字符串指定了用户名和密码,则可以创建多个数据源对象,每个对象都有不同的用户帐户。 通过创建多个数据源对象,可允许用户访问某些数据源对象,并可阻止用户访问其他数据源对象。 这些其他数据源对象可由SQL Server Analysis Services本身用于处理对象,例如多维数据集和挖掘模型。

  • 指定 Windows 身份验证

    如果数据源对象使用的连接字符串指定 Windows 身份验证,SQL Server Analysis Services必须能够模拟客户端。 如果数据源在远程计算机上,两台计算机必须使用 Kerberos 身份验证建立模拟信任,否则查询一般会失败。 有关详细信息,请参阅 Configure Analysis Services for Kerberos constrained delegation

    如果客户端不允许通过 OLE DB 和其他客户端组件中的模拟级别属性 (模拟) ,SQL Server Analysis Services将尝试与基础数据源建立匿名连接。 糯米连接到远程数据源很少成功,这是因为大多数数据源不接受匿名连接。)

另请参阅

多维模型中的数据源
连接字符串属性 (Analysis Services)
Analysis Services 支持的身份验证方法
授予对维度数据的自定义访问权限 (Analysis Services)
授予多维数据集或模型权限 (Analysis Services)
授予单元数据的自定义访问权限 (Analysis Services)