首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从运行在Linux上的Jasper服务器对SQL Server使用Windows身份验证

如何从运行在Linux上的Jasper服务器对SQL Server使用Windows身份验证
EN

Stack Overflow用户
提问于 2012-07-10 04:29:28
回答 1查看 5K关注 0票数 2

我有在Linux上运行的Jasper Server 4.5.0 64位。

Jasper Server插入的众多数据源之一是没有可用的Local SQL身份验证参数的SQL Server。

如何使用Active Directory帐户而不是本地SQL帐户连接到数据库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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>前添加以下元素

代码语言:javascript
复制
<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>

代码语言:javascript
复制
   <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)运行此脚本进行测试:

代码语言:javascript
复制
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

代码语言:javascript
复制
<%@ 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

创建表并测试报告。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11402628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档