我有在Linux上运行的Jasper Server 4.5.0 64位。
Jasper Server插入的众多数据源之一是没有可用的Local SQL身份验证参数的SQL Server。
如何使用Active Directory帐户而不是本地SQL帐户连接到数据库?
发布于 2012-07-10 04:30:02
假设: REMOTE_IP是sql server绑定到端口1433的ip地址,用于侦听/ip通信。数据库名为jasper。
我们将使用一个名为jTDS的产品来连接SQL Server,而不是使用普通的ole sqljdbc.jar驱动程序来连接到SQL Server。这是因为它允许JDBC使用Windows身份验证模式而不是SQL模式连接到SQL server。
步骤:
1)安装jasper服务器4.5.x
2)获取jTDS 1.2.5 (或者任何最新版本都可以)。
您可能已经注意到,该jTDS包中有几个DLL。别担心!该驱动程序在Linux中仍然有效。当然,你不能像Windows那样在Linux中进行单点登录。
将jtds-*.jar解压缩到$jasperserver/apache-tomcat/lib
3)编辑$jasperserver/apache-tomcat/conf/Catalina/localhost/jasperserver.xml,在</Context>前添加以下元素
<Resource name="jdbc/sqlserver"
auth="Container"
type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://REMOTE_HOST:1433;DatabaseName=jasper;useCursors=false;domain=COM;username=Administrator;password=XXXXXXX;user=Administrator"
user="Administrator"
password="XXXXXXX"
maxActive="20"
maxIdle="20"
maxWait="60000"
removeAbandoned="true"
logAbandoned="true"
removeAbandonedTimeout="300"
validationQuery="SELECT 1"/>4)为新数据源编辑$jasperserver/apache-tomcat/webapps/jasperserver/WEB-INF/web.xml并添加新的<resource-ref>:
<resource-ref>
<description>Connection Description</description>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>5)创建一个新的数据库名称"jasper“,并将read*权限授予您想要使用的Active Directory帐户。
6)运行此脚本进行测试:
create table test (test varchar(50) NULL)
insert into test values ('1')
insert into test values ('2')
insert into test values ('3')7)创建一个新的JSP文件$jasperserver/apache-tomcat/webapps/jasperserver/test.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="jdbc/sqlserver">
select test from test
</sql:query>
<html>
<head>
<title>DB Test</title>
</head>
<body>
<h2>Results</h2>
<c:forEach var="i" items="${rs.rows}">
Text Message: <c:out value="${i.test}"/><br>
</c:forEach>
</body>
</html>8)启动jasperserver的tomcat。登录并测试http://localhost:8080/jasperserver/test.jsp
您应该会看到测试表中的第1、2和3行。
如果它不工作..。回顾前面的步骤,看看哪里出了问题。
9)只需通过转到: Datasources JNDI New Data source -> Type: JNDI data source创建一个jasper server JNDI数据源。-> JNDI查找是:/jdbc/sqlserver
创建表并测试报告。
https://stackoverflow.com/questions/11402628
复制相似问题