我在 Linux 上运行 Jasper Server 4.5.0 64 位。
Jasper Server 插入的众多数据源之一是没有可用的本地 SQL 身份验证参数的 SQL Server。
如何使用 Active Directory 帐户而不是本地 SQL 帐户连接到数据库?
我在 Linux 上运行 Jasper Server 4.5.0 64 位。
Jasper Server 插入的众多数据源之一是没有可用的本地 SQL 身份验证参数的 SQL Server。
如何使用 Active Directory 帐户而不是本地 SQL 帐户连接到数据库?
假设: REMOTE_IP 是 sql server 绑定到端口 1433 监听 tcp/ip 流量的 ip 地址。数据库名称是jasper。
我们将使用名为jTDS的产品来连接 SQL Server,而不是使用普通的 ole sqljdbc.jar 驱动程序连接到SQL Server。这是因为它允许 JDBC 使用 Windows 身份验证模式而不是 SQL 模式连接到 SQL 服务器。
脚步:
1)安装碧玉服务器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”,并向您希望使用的 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) 只需转到:数据源 -> 新数据源 -> 类型:JNDI 数据源,即可创建一个 jasper 服务器 JNDI 数据源。-> JNDI 查找是:/jdbc/sqlserver
创建您的表格并测试您的报告。