授予数据源对象权限 (Analysis Services)
通常情况下,大多数 Analysis Services 用户都不要求访问构成 Analysis Services 项目基础的数据源。用户一般只在 Analysis Services 数据库中查询数据。但是,在数据挖掘上下文中(如根据挖掘模型执行预测),用户必须将挖掘模型的已学习数据与用户提供的数据联接起来。为了连接到包含用户提供数据的数据源,用户将使用包含 OPENQUERY (DMX) 或 OPENROWSET (DMX) 子句的数据挖掘扩展插件 (DMX) 查询。
若要执行连接到数据源的 DMX 查询,用户必须能访问 Analysis Services 数据库中的数据源对象。默认情况下,只有服务器管理员或数据库管理员才具有访问数据源对象的权限。这意味着除非获得管理员的授权,否则用户无法访问数据源对象。
![]() |
---|
出于安全方面的考虑,系统禁止在 OPENROWSET 子句中使用公开连接字符串来提交 DMX 查询。 |
设置数据源的读取权限
可以使数据库角色无权访问数据源对象,也可以授予其读取权限。
在 SQL Server Management Studio 中,连接到 Analysis Services 实例,在对象资源管理器中展开相应数据库的**“角色”**,然后单击某个数据库角色(或创建一个新的数据库角色)。
在“数据源访问”窗格内,找到“数据源”列表中的数据源对象,然后在“访问”列表中为该数据源选择“读取”。如果该选项不可用,检查“常规”窗格,查看是否已选中“完全控制”选项。“完全控制”已经提供了权限,您无法覆盖数据源上的权限。
使用数据源对象使用的连接字符串
数据源对象包括用于连接到基础数据源的连接字符串。此连接字符串可以指定以下内容之一:
指定用户名和密码
如果数据源对象使用的连接字符串指定了用户名和密码,则可以创建多个数据源对象,每个对象都有不同的用户帐户。通过创建多个数据源对象,可允许用户访问某些数据源对象,并可阻止用户访问其他数据源对象。其他这些数据源对象可由 Analysis Services 自身使用,用于处理对象(如多维数据集和挖掘模型)。
指定 Windows 身份验证
如果数据源对象使用的连接字符串指定了 Windows 身份验证,则 Analysis Services 必须能够模拟客户端。如果数据源位于远程计算机上,则必须信任这两台计算机,使它们可通过使用 Kerberos 身份验证进行模拟,否则查询通常会失败。有关详细信息,请参阅针对 Kerberos 约束委托对 Analysis Services 进行配置。
如果客户端不允许模拟(通过 OLE DB 和其他客户端组件中的“模拟级别”属性),Analysis Services 将尝试以匿名方式连接到基础数据源。通过匿名方式连接到远程数据源很少成功,因为大多数数据源不接受匿名连接)。
请参阅
任务
授予对维度数据的自定义访问权限 (Analysis Services)