报告服务和应用程序角色


25

第一张海报,长期潜伏在这里。在报表中激活应用程序角色的最佳方法是什么?

我尝试了不同的方法,到目前为止,唯一可行的方法是将调用嵌入到应用程序角色中,如下所示:-

EXEC sp_setapprole 'REPORTZ', 's3cr3t';
select *
from mytable
where ID < 10000

在数据集中。它确实可以工作...但是我不喜欢(肯定不是我想融入生产环境的形状)。

我希望可以通过自定义程序集或Reporting Service中的某种“服务器挂钩”在运行时以某种方式“劫持”或“注入”应用程序角色激活行(在两种情况下,我都不知道如何)

非常感谢您的时间+亲切的关注。

YS。


2
您可以从此处开始msdn.microsoft.com/zh-cn/library/aa237582(v=SQL.80).aspx,以了解如何扩展Reporting Service(注入设置应用程序角色的代码),但是我不会接受此评论作为答案,不确定这是否是最简单的方法,并且无法在配置中完成

根据人们访问此报表的方式,您可以在数据集中嵌入“报表用户”凭据,然后设置登录sql服务器端,使其具有有限的特权。
DForck42,2011年

DForck,您好-整个系统都基于approle,我们希望保持这种状态。

Answers:


3

我看到有几种方法可以完成,而不必诉诸过分的幻想。

  1. 第一种是使用Windows集成身份验证并将权限分配给代表应用程序用户的组。

  2. 您可以创建可以被授予的角色,然后set role在数据库的代码中使用该角色。这样,您无需传递密码,而是先对应用程序进行身份验证。

第一个优点是可以轻松地在AD域中管理有权访问应用程序的人员。管理将相对简单。主要的缺点是,它将仅限于有意义的集成身份验证的情况,并且您必须始终支持集成身份验证。此外,每个跃点最终都需要三路身份验证(在服务器,客户端和KDC之间)。

第二个优点是,它可能最容易插入,并且不会通过网络公开任何安全信息,并且在集成身份验证无法正常工作的情况下也可以使用。

在尝试扩展报告服务之前,我将尝试这两种方法。正如评论所建议的那样,http://msdn.microsoft.com/en-us/library/aa237582%28v=SQL.80%29.aspx可能会有所帮助并且可能会起作用,但是从概念上讲,它比尝试管理角色更加复杂直。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.