保护 Analysis Services 使用的数据源

如果未经授权的用户获得 Microsoft SQL Server Analysis Services 用以加载数据的数据源的访问权限,则这些未经授权的用户就可以访问存储在 Analysis Services 实例内的相同信息。 应当限制对这些数据源的访问。 若要浏览多维数据集和维度,Analysis Services 用户不需要拥有这些数据源的访问权限。 不过,Analysis Services 用户必须有一定的权限才能连接到基础数据源来执行某些任务,例如,使用数据挖掘表达式 (DMX) 执行某些数据挖掘任务。

保护到基础数据源的连接

Analysis Services 连接到基础数据源,以执行以下任务:

  • 将数据处理到 Analysis Services。

  • 使用 ROLAP 或 HOLAP 时解析查询。

  • 记录写回条目。

  • 执行多维表达式 (MDX) 钻取查询。

Analysis Services 通过 DataSource 对象执行其中的每个任务。 DataSource 对象用于访问这些数据的安全帐户是该用户自己的安全凭据或者是存储于 DataSource 对象中的连接字符串中指定的用户名和密码。

注意事项注意

如果 Analysis Services 使用 Analysis Services 登录帐户连接到它任何一个数据源,则那些具有完全控制权限的数据库角色的成员即有权访问该数据源,无论该数据源是否在该数据库中使用。

DataSource 对象使用的安全帐户所需的权限取决于 Analysis Services 要执行的任务:

  • 若要连接到数据源,DataSource 对象使用的安全帐户必须至少具有对数据源中的有关表的读取权限。 如果使用 ROLAP 存储,安全帐户还必须具有将聚合数据写回数据源的权限。

  • 如果启用写回,使用的安全帐户还必须具有写入写回表的权限。

Analysis Services 加密并存储用于连接到每个数据源的连接字符串信息。 如果连接字符串指定特定安全帐户而不是可信连接,您可以选择存储有密码或没有密码的连接字符串。 如果密码不与连接字符串一起存储,那么,只要 Analysis Services 尝试连接到该数据源(例如,在处理期间,或修改数据源视图时),Analysis Services 就会提示用户提供适当的安全帐户和密码。

在开发期间,您可以选择在 Analysis Services 项目中存储连接字符串安全帐户和密码。 生成 Analysis Services 项目时,除非您选择在输出文件中持久化安全帐户和密码,否则 Business Intelligence Development Studio 将从所有数据源连接字符串中将其删除。 如果在 Analysis Services 项目的输入文件中存储安全帐户和密码,此连接字符串信息将被加密。 如果不持久化此连接字符串信息,且未在连接字符串中指定可信连接,那么 Analysis Services 将在部署处理过程中提示您提供适当的安全帐户和密码。

保护数据挖掘查询使用的连接

对于在 DMX 命令中使用 OPENQUERY 子句连接到基础数据源的数据挖掘查询,Analysis Services 通过 DataSource 对象进行连接。 DataSource 对象模拟客户端或使用在连接字符串中指定的名称和密码。 默认情况下,用户不具备对 DataSource 对象的权限,因此不能使用 OPENQUERY 语句查询基础数据源。 如果要在 DMX 语句中使用 OPENQUERY 子句来查询基础数据源,用户必须被授予对 DataSource 对象的读/写权限。 如果用户对 DataSource 对象具有读/写权限,并且在连接字符串中指定了特定帐户,则最佳做法是对指定帐户的基础数据源中的表具有限制性最强的权限,也就是对被访问的特定表的只读权限。 有关 DMX 的详细信息,请参阅数据挖掘扩展插件 (DMX) 数据定义语句数据挖掘扩展插件 (DMX) 数据操作语句

默认情况下,用户不能在 DMX 语句中使用 OPENROWSET 子句,也不能通过使用即席连接字符串提交针对基础数据源的即席查询。 您可以更改 DataMining \ AllowAdHocOpenRowsetQueries 服务器配置属性的默认设置,允许用户使用 OPENROWSET 子句。 若要访问此属性,请右键单击 Analysis Services 实例,单击“属性”,然后在“安全性”页上找到此属性。 如果执行此操作,将无法限制数据挖掘模型用户可以查询的数据源。 有关详细信息,请参阅授予访问挖掘结构和挖掘模型的权限授予对数据源的访问权限