我有在Linux上運行的Jasper Server 4.5.0 64位。如何使用Windows身份驗證從運行在Linux上的Jasper服務器到SQL Server
Jasper Server插入的許多數據源之一是一個沒有本地SQL認證參數的SQL Server。
如何使用Active Directory帳戶而不是本地SQL帳戶連接到數據庫?
我有在Linux上運行的Jasper Server 4.5.0 64位。如何使用Windows身份驗證從運行在Linux上的Jasper服務器到SQL Server
Jasper Server插入的許多數據源之一是一個沒有本地SQL認證參數的SQL Server。
如何使用Active Directory帳戶而不是本地SQL帳戶連接到數據庫?
假設: REMOTE_IP是ip地址sql server綁定到偵聽tcp/ip通信的端口1433。而數據庫名稱是jasper。
除了使用plain ole sqljdbc.jar驅動程序連接到SQL Server,我們將使用名爲jTDS的產品連接到SQL Server。這是因爲它允許JDBC使用Windows身份驗證模式而不是SQL模式連接到SQL服務器。
步驟:
1)安裝碧玉服務器4.5.x
2)獲取JTDS 1.2.5(或什麼是最新的應該工作)。
您可能已經注意到該jTDS包中有幾個DLL。別擔心!該驅動程序仍然在Linux中工作。當然,你不能像Windows一樣在Linux中進行單點登錄。
提取JTDS - *罐子$的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)Cr請求新的數據庫名稱「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)通過轉到:Datasources - > New Data source - > Type:JNDI數據源,簡單地創建一個jasper服務器JNDI數據源。 - > JNDI查找是:/jdbc/sqlserver
創建您的表並測試您的報告。
我沒有使用Jasper,但我能夠使用AD帳戶進行SQL Server身份驗證,但我必須使用JTDS驅動程序。感到驚訝的是,我無法直接使用MS SQL JDBC Driver來完成它。 – Shilpam 2015-06-09 18:04:26