Linux で Jasper Server 4.5.0 64 ビットを実行しています。
Jasper Server がプラグインする多くのデータ ソースの 1 つは、ローカル SQL 認証パラメーターを使用できない SQL Server です。
ローカル SQL アカウントの代わりに Active Directory アカウントを使用してデータベースに接続するにはどうすればよいですか?
Linux で Jasper Server 4.5.0 64 ビットを実行しています。
Jasper Server がプラグインする多くのデータ ソースの 1 つは、ローカル SQL 認証パラメーターを使用できない SQL Server です。
ローカル SQL アカウントの代わりに Active Directory アカウントを使用してデータベースに接続するにはどうすればよいですか?
前提: REMOTE_IP は、SQL サーバーが tcp/ip トラフィックをリッスンするポート 1433 にバインドされている IP アドレスです。データベース名はjasperです。
プレーンな ole sqljdbc.jar ドライバーを使用して SQL Server に接続する代わりに、jTDSという製品を使用して SQL Server に接続します。これは、JDBC が SQL モードではなく Windows 認証モードを使用して SQL サーバーに接続できるようにするためです。
手順:
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」を作成し、使用する Active Directory アカウントに read* 権限を付与します。
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
テーブルを作成し、レポートをテストします。