我正在使用PHP 5.2.9和MS Sql Server 2005设计一个网站。我有一个SSRS报告,我想设置它,以便互联网上的人可以访问它(在他们输入用户名和密码后,但我可以想出那部分。)
我们的网站本地托管在Web服务器上,数据库位于单独的服务器上。我还没有设置SSRS实例。
所以任何有关如何做到这一点的帮助都会很棒(在游戏中转换为asp.net有点太晚了(
答案 0 :(得分:5)
解决此问题的最简单方法是查看MS所谓的“URL访问”,它允许您链接到SSRS安装上托管的报告。有很多方法可以通过所有URL访问参数进行自定义。
看看这里:URL Access
简单示例:
http://<Server Name>/reportserver?/Sales/YearlySalesByCategory&rs:Command=Render
上面的链接会导致报告在网页浏览器中呈现,就像普通网页一样。您还可以指定其他渲染模式,例如PDF。我通常在我的应用程序中执行的操作是用户单击引用该报表的链接,并将渲染模式设置为PDF。然后,您可以将所有安全和身份验证代码包装在其周围,以免远离那些您不想使用它的代码。
答案 1 :(得分:3)
我认为您最好的选择是使用SSRS Web服务界面。您可以通过ASP“代理”汇集请求。在PHP中从头开始编写客户端可能是不可取的(除非你找到一个现成的组件,我没有研究)。代理类随时可用于.Net(see here)。您的代理客户端可以使用“服务帐户”进行身份验证。
或者,您可以使用SSRS URL界面。很久以前我为SSRS 1.0写了一个Java proxy。基本方法可能仍然有效。
就安全集成而言,这取决于您的用户是否在AD域中。通过Windows Integrated Security以外的模型通过RS进行身份验证不是直截了当的,需要自定义。
答案 2 :(得分:0)
按照建议使用网络服务,但从互联网上隐藏SSRS服务器。
SSRS和SharePoint根本不是互联网安全的。如果你在社交场合认识一个啤酒,请询问任何MS顾问。
答案 3 :(得分:0)
我在整个问题上找到了微软的一些文档here。我已经把它拿起来跑了,所以我很高兴。虽然为了使它完美,我仍然需要在Web服务器和网络的其余部分之间使用另一个防火墙。