SSRS是微软的报表服务管理器,本文讲述SSRS的配置:邮件和凭证。
一,配置SMTP
在报表服务配置管理器(Reporting Service Configuration Manager)中配置邮件设置,使SSRS发送邮件。
1,在报表服务配置管理中,配置邮件设置
在Email Settings中,配置发送地址(Sender Address)和SMTP Server的地址,注意,在这里没有对访问SMTP Server的进行用户安全性验证,比如输入账号和密码。
2,配置访问SMTP的安全验证
默认情况下,Reporting Service使用匿名验证访问SMTP Server,但是目前大多数SMTP Server都不支持匿名验证,需要修改访问SMTP Server的安全验证类型,这在Reporting Service Configuration Manager中是无法修改的,需要直接修改Reporting Service的配置文档。
SSRS的配置文件名是 rsreportserver.config,在SQL Server 2012版本中,配置文件存放在:
C:Program FilesMicrosoft SQL ServerMSRS11.MSSQLSERVERReporting ServicesReportServer
在rsreportserver.config文件中,有2个重要的结点需要配置
2.1,配置安全验证类型
Authentication 指定报表服务器所接受的一个或多个安全验证类型。只会自动添加默认设置,若要添加其他设置,必须使用文本编辑器将相应的元素结构添加到 RSReportServer.config 文件中并设置其值。
在配置文档中,EnableAuthPersistance 设置为 True,将RSWindowsNegotiate 注释掉。
<Authentication> <AuthenticationTypes> <!--<RSWindowsNegotiate/>--> <RSWindowsNTLM/> </AuthenticationTypes> <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel> <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>
2.2,配置SMTP安全验证
<SMTPAuthenticate>2</SMTPAuthenticate>
结点SMTPAuthenticate表示通过 TCP/IP协议向 SMTP 服务发送消息时使用的身份验证类型,节点值是一个整数值:
- 0 是匿名访问,默认值,不需要进行身份验证
- 2 是身份验证,Reporting Services 通过 Windows 服务的安全凭证连接到 SMTP 服务器
二,配置凭证(Credentials)
1,配置报表服务账户(Service Account)
Service Account 是Reporting Service 运行的账户,可以通过查看Windows 的 Service 来查看,强烈建议使用 Reporting Service Configuration Manager 来修改Reporting Service的Account,配置管理器(Reporting Service Configuration Manager)对相关组件进行修改操作,以完成账户变化的修改。
2,配置链接到Report Server 数据库的权限
修改Credential,使用Windows 验证方式,这个Credentials 是链接到Report Server database 使用的Login 和password。
3,无法登录报表服务器
当在浏览器中访问报表时,出现错误:
An error has occurred during report processing. (rsProcessingAborted) Cannot create a connection to data source 'DataSourceName'. (rsErrorOpeningConnection)
当Test Connection时,SSRS抛出'NT AuthorityAnonymous Logon' 错误消息
这种情况需要修改连接的凭证,SSRS使用凭证保存保存连接的安全验证信息,用户需要填写Windows 域用户的账号和密码,并勾选 “Use as Winodows credentials when connectiong to the data source”: