志坚苍狼

原创文章
随笔 - 16, 文章 - 0, 评论 - 64, 引用 - 3
数据加载中……

SQL Server 2005中设置Reporting Services发布web报表的匿名访问

        一位朋友提出个问题:集成到SQL Server 2005中的Reporting Services已经将报表模板发布到IIS服务器,客户端通过浏览器访问时,默认会弹出Windows集成身份验证的对话框。如果在IIS配置里面把允许匿名(IUSR_**)访问的选项勾选,客户端再次访问的时候,会提示IUSR_** 访问权限不足。

 

    对于这个问题,除了要设置IIS允许匿名访问外,还需要设置Reporting Services站点的访问权限和SQL Server中数据源的用户访问权限。

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

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

1、  点击“New Role Assignment”(分配新角色)

2、  弹出的IE窗口中,Group or user name(组或用户名) 文本框输入IUSR_** (匿名用户)。

3、  勾选Browser(浏览者)权限,点OK按钮确定。

4、  返回到http://localhost/reports 页面中会新出现添加的Role(角色)。



第二步:除了要设置
Reporting ServicesIIS站点能允许IUSR_**(匿名用户)访问外,首先需要设置SQL Server 2005 中相应的数据库能允许IUSR_**(匿名用户)有只读的访问权限。

 

在运行SQL Servier 2005 的数据库服务器中,打开Microsoft SQL Server Management Studio。在Object Explorer(对象浏览器)中找到Security(安全)目录下的Logins(登录),在Logins(登录)图标上面单击右键快捷菜单上,选择New Login…(新登录),弹出的对话框中设置。

1、  右键菜单选择New Login…(新登录)。

2、  Windows authentication 中的Login Name(登录名)文本框,输入IUSR_**(匿名用户)。

3、  Defaults(默认)的Database(数据库)下拉列表框找到Reporting Services制作的报表模板的数据源数据库。

4、  Select a page(选择一个页面)列表中点击“Database Access”(数据库访问)。



第三步:在Data Access页面中,在Databases accessible by this login(数据库默认登录)选择Reporting Services制作的报表模板的数据源数据库。

1、  选择数据库

2、  OK确定

 

 

 

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

1、  IUSR_**(匿名用户)上右键菜单选Properties(属性)。

2、  弹出的对话框中选择Permissions(许可)。

3、  点击“Add Objects…”(增加对象)。

4、  再次弹出的对话框中选择“Add objects of types”。

 

    还是第四步:弹出的对话框中选Databases(数据库的)。

1、  Select Object Types(选择对象类型)对话框选择“Databases”(数据库的)。

2、  OK确定。

 

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

 

1、          Permissions for *** 列表中,找到Select,勾选。(注:你会看到Connect后面是默认勾选的,因为前面设置的默认登录到数据库就是该数据库)

2、          OK确定。

 

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

 

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

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

3、  在弹出的“身份验证方法”对话框,勾选“启用匿名访问”。

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

5、  OK确定。

 

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

 

  

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

 

 

再一想,http://localhost/reports http://localhost/reportserver 这两个虚拟目录对应的物理目录是不同的。一个http://localhost/reports 对应的是C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager ;而http://localhost/reportserver 对应的是C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer。刚才对\reportserver的匿名访问权限的修改又怎么影响到\reports 了呢??

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

 

0
0
(请您对文章做出评价)
« 上一篇:公告:2005年5月29日起,本Blog只刊登原创计算机技术文章
» 下一篇:ASP.NET中用哪种方式表格化数据

posted on 2005-08-04 00:21 志坚苍狼 阅读(10770) 评论(16)  编辑 收藏 网摘

评论

#1楼   回复  引用    

Thanks!
我就是这么做的, 就是对 Reports 安全属性在 “匿名访问”和集成验证之间切换比较麻烦,本来Reports 和 Reportserver 是独立目录应该不相干的, 不知道MS能否改进!
2005-08-04 18:48 | Franky[未注册用户]

#2楼   回复  引用    

请教用Reporting Servies 如何实现主从表?
2005-11-15 16:24 | yaozy

#3楼   回复  引用    

“默认会弹出Windows集成身份验证的对话框” 这个问题困扰好久了,今天终于找到解决方法了,太感谢了
2006-06-09 11:42 | liyg[未注册用户]

#4楼   回复  引用    

<P>感谢提供,已经解决该问题。</P>
<P><A href="http://tclywork.itpub.net">http://tclywork.itpub.net</A></P>
2006-08-25 10:36 | tclywork[未注册用户]

#5楼   回复  引用    

杨老师,看了您关于SQL2005 REPORTING SERVER的讲座,受益非浅.按照您说的测试了一下,用SQL2005数据库作为

数据源,没有什么问题,很顺利就将报表呈现在WEB上。但在以ORA数据库作为数据源时就遇到问题了。如下:
一、环境:WINDOWS2003SERVER,VS2005,SQLSERVER2005,ORA9.2客户端。
二、我在设计报表项目时,将ORA数据库作为数据源,建立数据集,然后设计布局,再预览,成功的在预鉴窗口

看到来自ORA的数据。
1\但当我在WEB中绑定到REPORTVIEWS控件时,运行时出现错误提示:无法与ORACLE数据源建立连接,

SYSTEM.DATA.ORACLECLIENT需要ORACLE客户端软件8.17或更高版本。
2、我再访问IIS的REPORTS ,此报表项目也出现同样的错误。
但我明明安装了ORACLE客户端软件9.2。请问杨老师如何解决!!!

#6楼   回复  引用    

高手,能帮个忙吗?

我的报表结构是:(我想得到所有时间中每个时间的第一个值的之和)
例如有表结构:
2006年
1234
1234
2007年
3456
3456
3456
2008年
3456
3456
3456
我想得到结果为:1234+3456+3456
2006-12-17 13:45 | df[未注册用户]

#7楼   回复  引用    

我的报表数据源来自AS,但是遇到这么一个问题:在AS中一个纬度我希望在报表的两列中显示,且要显示不同的值(值由列名确定),请高手指点

#8楼   回复  引用    

杨老师,这样的我设置了一个服务器端报表,条件如下:
1\已设置<!-- Web.config file. --> <identity impersonate="true"/>
2\在嵌到WEB里面用REPORTVIEWER控件来展示(要求作为首页直接显示报表,不用输入密码和用户),
结果发现在本机上能够直接浏览,但是在其它计算机就弹出了一个输入用户和密码的窗口,请问有什么方法可以不会弹出窗口呢????查了很多资料都没有办法,我不知道这是否是一个凭据的问题(我试过将整个网站设置为匿名访问,就不会弹出窗口达到要求,但是这样很不安全,不可行!)。
请问杨老师如何才能解决呢??
2007-03-27 11:23 | sdtysdu[未注册用户]

#9楼   回复  引用    

谢谢.
2007-04-11 15:00 | silentVolcano[未注册用户]

#10楼   回复  引用    

我做了一个报表,已经发布到报表服务器上了,但我在web页面里面调用此报表时却弹出了一个错误信息[为用户“NT AUTHORITY\NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied) ]请杨老师给与帮助,谢谢!
2007-06-06 08:41 | 明明[未注册用户]

#11楼   回复  引用    

匿名访问的方式不可取,很多商业数据是不允许匿名访问的,有更好的方法可以对权限加以控制。
首先,在AD中建立一个允许访问报表的用户组,如“报表用户组”,将允许访问报表的用户加入该组中;
其次,将该组加入到安装报表服务器时自动建立的SQLREPORT用户组及WEBREPORT用户组中,如“SERVER\SQLServer2005MSSQLUser$SERVER$SQL2005 ”组及“SQLServer2005ReportingServicesWebServiceUser$SERVER$SQL2005 ”组中;
最后,进入SQL Server Management Studio,在报表数据库的安装实例中,在安全性|登录名下已经存在安装时加入的一个登录名组,如“SERVER\SQLServer2005MSSQLUser$SERVER$SQL2005 ”,在该组的属性中,将“用户映射”到报表服务用的数据库上。

验证:再次访问报表服务器时,在弹出的验证窗口中输入属于“报表用户组”成员的用户名和密码,就可以访问该报表。
2007-08-28 10:59 | archyw5000[未注册用户]

#12楼   回复  引用  查看    

数据库方面的设置不用这么复杂吧;只需要修改数据源连接串不使用集成windows登陆就可以了。
2007-09-04 12:19 | duanqingsong      

#13楼   回复  引用    

@明明
如果你加入了匿名用户依然有这个warning, 有可能是你的tfs 有用户限制,如果没有安全问题, 可以再iis里面的属性->访问权限 里面加入别的现有账户试试。
2007-10-04 12:13 | freemans[未注册用户]

#14楼   回复  引用    

假如 数据库 和 程序文件不在同一台机器上 如何添加用户啊
2008-01-02 16:29 | Rain1999[未注册用户]

#15楼   回复  引用    

正规<a href=http://www.tannet.net>注册香港公司</a>、香港公司注册登记处,注册香港公司相关条件,办理注册香港公司、香港公司税务

政策,香港商会协会登记、香港商标申请、香港公司法律法规,提供<a href=http://www.tannet.net/page/newsdetail.aspx?ID=282>香港公" target="_new" rel="nofollow">http://www.tannet.net/page/newsdetail.aspx?ID=282>香港公

司注册</a>,香港公司查询等咨询服务,,申请香港公司,成立香港公司,如何办理注册香港公司如需注册成立香港公司请来电咨询。另外提供:<a

href=http://www.tannet.net/page/newsdetail.aspx?ID=339>注册英国公司</a>" target="_new" rel="nofollow">http://www.tannet.net/page/newsdetail.aspx?ID=339>注册英国公司</a>;<a href=http://www.tannet.net/page/newsdetail.aspx?

ID=321>注册美国公司</a>;<a href=http://www.tannet.net/page/newsdetail.aspx?ID=426>注册深圳公司</a>。
2008-02-01 15:53 | 注册公司[未注册用户]

#16楼   回复  引用    

不错,如果要注册香港公司请到
广州伟丰注册香港公司
http://www.wfgroup.org