2

Linux で Jasper Server 4.5.0 64 ビットを実行しています。

Jasper Server がプラグインする多くのデータ ソースの 1 つは、ローカル SQL 認証パラメーターを使用できない SQL Server です。

ローカル SQL アカウントの代わりに Active Directory アカウントを使用してデータベースに接続するにはどうすればよいですか?

4

1 に答える 1

3

前提: 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

テーブルを作成し、レポートをテストします。

于 2012-07-09T20:30:01.793 に答える