Reporting Service部署之访问权限

原文:Reporting Service部署之访问权限

SQL Server Reporting Services 并非专门设计用于 Internet 报表部署方案,但是您可以成功地将 Reporting Services 放置于面向 Internet 的 Web 服务器上,
   以将一般信息向广大公众传播,或者将公司保密数据向经过授权和身份验证的用户传播。
 
          公司的一个项目中的报表准备升级到SQL Server 2005,并且其中的报表系统将使用集成在SQL Server 2005中的Reporting Services。
   但是当我将报表模板发布到IIS服务器后,通过IE客户端通过浏览器访问时,默认会弹出Windows集成身份验证的对话框。
   如果在IIS配置里面把允许匿名(IUSR_**)访问的选项勾选,IE客户端再次访问的时候,会提示以下信息:
    1)为用户“NT AUTHORITY/NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied)
    2)    请求因HTTP 状态401 失败:Unauthorized。(IUSR_** 访问权限不足。)

对于这个问题,我在参考了msdn与网上的一篇文章(http://www.cnblogs.com/firmwolf/archive/2005/08/04/207062.html),之后解决了些问题。
    解决方案:
    除了要设置IIS允许匿名访问外,还需要设置Reporting Services站点的访问权限和SQL Server中数据源的用户访问权限。

下面我将把需要做的步骤列出来,大家注意前提是使用Visual Studio .NET 2005 已经正确的发布了Reporting Services制作的报表模板到IIS服务器。

第一步:在运行IIS的Web服务器的本地访问http://localhost/reports ,这是Reporting Services的管理站点,在Properties(属性)页面下添加一个只有Browser(浏览者)
     权限的新Role(角色)。注意新角色的用户名称即IUSR_** (匿名用户)。这一步就是那篇文章中步骤。(如图)

1、  点击“新建角色分配”
   2、  弹出的IE窗口中,“组或用户名” 文本框输入IUSR_** (匿名用户)。
   3、  勾选“浏览者”权限,点OK按钮确定。
   4、  返回到http://localhost/reports 页面中会新出现添加的Role(角色)。

第二步:除了要设置Reporting Services的IIS站点能允许IUSR_**(匿名用户)访问外,首先需要设置SQL Server 2005 中相应的数据库能允许IUSR_**(匿名用户)有只读的访问权限和执行存储过程的权限。因为有些报表可能是由存储过程生成的。
 
      在运行SQL Servier 2005 的数据库服务器中,打开Microsoft SQL Server Management Studio。
      在Object Explorer(对象浏览器)中找到Security(安全性)目录下的Logins(登录名)目录上点右键,
      在Logins(新建登录名...),在弹出的对话框中设置。
      或是在“安全性”上点右键-->新建-->登录。(如图)

1、  右键菜单选择“新建登录名...”。

2、  在登录名文本框中,输入IUSR_**(匿名用户),选择 “Windows 身份验证”。

3、  在“默认数据库”下拉列表框找到Reporting Services制作的报表模板的数据源数据库。

4、  在“选择页”列表中点击“用户映射”。

5、  在“用户映射”页面中,在“映射到此登录名的用户”选择Reporting Services制作的报表模板的数据源数据库。

6、  OK确定

第三步:还是在Microsoft SQL Server Management Studio中,找到Reporting Services的数据源数据库,
                    在“安全性”-->“用户”下,找到刚才添加的IUSR_**(匿名用户)。设置他对该数据库的访问权限。(如图)

1、  在IUSR_**(匿名用户)上右键菜单选“属性”。
  2、  弹出的对话框中选择“安全对象”。
  3、  点击“添加…”。
  4、  再次弹出的对话框中选择“特定类型的所有对象(T)....”。
  5、  点击“确定”按钮。
  6、在弹出的对话框中的“选择要查找的对象类型(S)”列表框中选“数据库”。
  7、  点击“确定”。

还是第三步:选择IUSR_**(匿名用户)对该数据库许可的操作。

1、在“*** 的显示权限(P)”列表中,找到Select和Execute(如果不执行存储过程,可以不选),勾选。
  (注:你会看到Connect后面是默认勾选的,因为前面设置的默认登录到数据库就是该数据库)

2、点击“确定”。

第四步:设置IUSR_**(匿名用户)的登录密码。
    1.控制面板-->管理工具-->计算机管理-->本地用户和组-->选择“IUSR_**(匿名用户)”-->设置密码.(如图)-->在弹出窗口中点击“继续”-->在弹出窗口中修改密码。

第五步:打开IIS管理器,设置ReportServer虚拟目录为匿名访问。

1、  打开IIS管理器,在ReportServer虚拟目录上单击邮件选择“属性”。

2,3、  在“目录安全性”页面,找到“身份验证和访问控制”,点击“编辑...”。

4、  在弹出的“身份验证方法”对话框,勾选“启用匿名访问”。
   5、  在密码输入框中输入在第四步中修改的密码。
   6、  在“用户访问需经过身份验证”的位置,默认是选中“集成Windows身份验证”。在这儿可以不用修改它。
            如果去掉了“集成Windows身份验证”前面的勾选,则本机(IIS服务器所在机器)对Reporting Services Web站点的访问也成了匿名访问。

7、  点击“确定”。

第六步:再通过其他的客户端机器访问Reporting Services Web站点,则不再出现Windows用户登录窗口。对Reporting Services Web站点的访问已经更改为匿名用户的访问。

但是注意,有个问题会同时出现。我们再次访问http://localhost/reports 时发现,将不能对Reporting Services的权限分配。
打开http://localhost/reports 能够看到的是只有“内容”一个分类页面的选项,“属性”选项则不会出现了。
这该是Reporting Services产品刻意设计的,因为所有的用户都可以匿名访问Web站点了,权限如果放开了随便改肯定不行。

如果再需要修改/reports的“属性”,唯一能做的就是重新打开IIS的管理器,去掉/reportserver中的“匿名访问”选项,再来修改。
修改后,再将/reportserver改为“匿名访问”。

原帖:http://blog.csdn.net/wangjh422/archive/2008/02/19/2104853.aspx

时间: 2024-10-12 12:25:38

Reporting Service部署之访问权限的相关文章

Sql Server Report Service 的部署问题(Reporting Service 2014為什麼不需要IIS就可以運行)

http://www.cnblogs.com/syfblog/p/4651621.html Sql Server Report Service 的部署问题 近期在研究SSRS部署问题,因为以前也用到过SSRS报表,但当时开发的报表是有专 门的集成系统的,不需要我自己去部署,所以对这一块的部署也不熟悉,我记得当时我是直接开发出一个SSRS 报表,然后会通过自动上传的方式上传到微软Dynamic CRM系统中,它带有自带的集成部署.而现如今,看来又得重新回去恶补一下部署的信息了.经过无数的错误的再错

SQL Server Reporting Service(SSRS) 第五篇 SSRS 部署总结

前段时间完成了第一批次SSRS报表的开发,本来以为大功已经告成,结果没有想到在整个发布与部署过程中还是遇到了很多的问题,现将这些问题一一列举出来,希望对以后能够有所启发! 1. 关于数据源与数据集的发布(报表自动引用相应的数据源与数据集) 在使用SSRS开发的过程中,为了方便使用,我们不可避免地会使用到共享数据源及共享数据集.但在方便开发报表的同时,有些时候报表发布后可能找不到相应的数据源,我们需要手动一个个去选择数据源与数据集的存放方式.经过调查我发现,对于数据源与数据集的发布地址,我们可以进

windows service 之访问权限(有NetworkService和LocalSystem的区分)

最近写了一个关于从局域网的算机上下载文件的winodws service,最初认为应该没什么大的问题.通过本地的调试也没发现问题.但是当我把程序发布后发现服务报错“访问路径被拒绝”,我的第一感觉,肯定是网络文件夹访问权限问题.那好吧,就用个最傻的方法把文件夹的权限设置成everyone.但是,我把服务跑起来后发现根本就不理你,还是报同样的错误.难道是下载文件的模块出错了?后来我把下载模块放到一个控制台程序和一个web页面中,都顺利通过.真是搞不懂,后来到网上搜一下看到思归老大的回复,是 wind

Reporting Service 没有权限登陆

在配置好Reporting Service之后,登陆Report Mananger( http://localhost/Reports/Pages/Folder.aspx)出现一个异常,本地用户没有权限登陆报表管理器? “User 'domain\username' does not have required permissions. Verify that sufficient permissions have been granted and Windows User Account Co

Confluence 6 给一个从 Jira Service Desk 的非许可证用户访问权限

如果你正在使用 Confluence 为 Jira 服务桌面(Jira Service Desk)的知识库,你可以选择允许所有活动的用户和客户(客户是可以登录的用户,但是这些用户是没有 Confluence 许可证的)来查看特定的空间.这个仅对 Jira Service Desk 有效,请参考 turned on via JIRA Service Desk 页面中的内容. 当空间是能够对所有活动用户开发访问的,你将会在空间的权限页面中看到下面的提示.  这个权限将会覆盖所有已经存在的空间权限,因

Reporting service个人使用经验

部署环境 Windows server 2012 R2 软件环境 安装完整的sqlsever2012,IIS服务 需要操作的软件 Reporting service配置管理器 IIS(Internet information service)管理器 SQL Server data tool 首先打开reporting service配置管理器 服务器名称默认为本机,当然你也可以查找其它一些服务器,默认为本机时,就是把报表部暑在本机上.点击连接,则启动了Reporting Services管理器,

SQL Server性能计数器收集汇总方案(Reporting Service)

通过收集计数器信息,并将计数器信息汇总为不同粒度存储,以Reporting Service报表服务器显示.以下是计数器收集汇总的基本架构. 笔者需要收集的SQL Server计数器包括:SQL Server计数器属性详解 一.SQL Server计数器基本架构图 1. 生产服务器通过ODBC开发数据库互联ODBC配置访问监控监控服务器的SQLPerfData,将数据写入该数据库.详情请见计数器部署 SQL Server性能计数器部署(批量) 2. 通过作业调用存储过程spb_Perf_Count

SQL Server Reporting Service(SSRS) 学习初步

很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Reporting Service,对于服务端,作为SQLServer的一个组件,我们在安装SQLServer可以选择安装Reporting Service: 对于客户端,因为我使用的是VS2015,所以需要安装SSDT(SQL Server Data Tools),因为其已经囊括了BI(Busines

android:各种访问权限Permission

在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作.在Android中这样的权限有很多种,这里将各类访问权限一一罗列出来,供大家使用时参考之用. android.permission.EXPAND_STATUS_BAR允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST作为一个工厂测试程序,运行在root用户 android