zoukankan      html  css  js  c++  java
  • 在IIS与SQL Server 2005中设置,让Reporting Services发布的web报表允许匿名访问

       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改为“匿名访问”。

  • 相关阅读:
    fzuoj Problem 2177 ytaaa
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Capture the Flag
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Team Formation
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Beauty of Array
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Lunch Time
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest May Day Holiday
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Demacia of the Ancients
    zjuoj The 12th Zhejiang Provincial Collegiate Programming Contest Ace of Aces
    csuoj 1335: 高桥和低桥
  • 原文地址:https://www.cnblogs.com/tearer/p/1788991.html
Copyright © 2011-2022 走看看