听说Kettle 数据库JNDI方式数据库密码不能加密,搞他!

 

Kettle数据库明文密码加密

 

 

Kettle 数据库JNDI方式数据库密码不能加密,搞他!

logo.png

 

 

 

1

新建数据库连接

 

 

kafka-apis.png

 

1.1 普通局部变量

Step 1: 选择连接类型,这里选择Oracle

Step 2: 连接方式选择Native(JDBC)

Step 3: 右侧填写数据库连接信息

Step 4: 点击【测试】,保存即可

 

kafka-apis.png

 

1.2 变量局部配置

Step 1: 在家目录下找到.kettle文件夹,适用linux和windows

Step 2: 编辑[.kettle/kettle.properties],加入

STAT_IP=host
STAT_PORT=port
STAT_DB=数据库
STAT_USER=用户
STAT_PWD=密码

Step 3: 重启Kettle,如图所示,使用 ${}引用变量 即可

Step 4: 点击【测试】,保存即可

 

kafka-apis.png

 

 

kafka-apis.png

 

1.3 全局配置

Step 1: 选择连接类型,这里选择Oracle

Step 2: 连接方式选择JNDI

Step 3: 右侧填写JNDI编写的名称(名称是jdbc.properties内‘/’前的名称,如下面的stat)

Step 4: 点击【测试】,保存即可

  • JNDI模板如下

#Oracle
stat/type=javax.sql.DataSource
stat/driver=oracle.jdbc.driver.OracleDriver
stat/url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = port))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = serviceInstance)))
stat/user=
stat/password=

#MySql
mysql/type=javax.sql.DataSource
mysql/driver=com.mysql.jdbc.Driver
mysql/url=jdbc:mysql://host:port/db?useUnicode=true&characterEncoding=utf-8
mysql/user=
mysql/password=

 

kafka-apis.png

 

 

kafka-apis.png

 

 

 

 

2

数据库密码加密

 

企业安全规定都会要求明文密码加密,接下来操作会很重要。

2.1 普通局部配置

 

在数据库连接里面直接写密码,在保存的时候,kettle 会自动对密码进行加密处理。

 

kafka-apis.png

 

2.2 变量局部配置

在kettle目录下会看到Encr.bat这样一个命令行工具,在当前目录打开cmdEncr.bat -kettle password,会生成出一串加密串。(linux 下是Encr.sh)

将Encrypted xxxxxxxxxxxxx在kettle.properties替换即可,STAT_PWD=Encrypted xxxxxxxxxxxxx

 

kafka-apis.png

 

2.3 全局配置

测试发现,JNDI全局配置方式不支持明文加密。

 

》》》一言不合,直接撸源码

kettle 8.2 引用 simple-jndi-1.0.0.jar,在获取数据库连接前没有解密操作。

 

kafka-apis.png

 

github上simple-jndi-1.0.3.jar 版本已经加上明文加密处理。看来已经有大佬解决了,一梭子就是干!!!

 

kafka-apis.png

 

https://github.com/pentaho/pentaho-simple-jndi/blob/master/src/main/java/org/osjava/sj/loader/SJDataSource.java

》》》》开搞

下载源码到本地,编译,打包。

注意:parent-pom 也需要编译 ,https://github.com/pentaho/maven-parent-poms

 

kafka-apis.png

 

  • 下面有编译好的jar 见云盘

链接: https://pan.baidu.com/s/17bmq4Oy1gKtk9c6fna-L2Q 提取码: ub7c

 

kafka-apis.png

 

》》》》升级

simple-jndi-1.0.3.jar,pentaho-encryption-support-9.1.0.0-20200803.052023-95.jar

  • 将上面两个jar放到$KETTLE_HOME/data-integration/lib下

  • 两个jar的其他版本请备份,之后重启Kettle

kafka-apis.png

 

 

》》》》测试

simple-jndi-1.0.3.jar,pentaho-encryption-support-9.1.0.0-20200803.052023-95.jar

  • 将上面两个jar放到$KETTLE_HOME/data-integration/lib下

  • 两个jar的其他版本请备份,之后重启Kettle

 

kafka-apis.png

 

kafka-apis.png

 

 

kafka-apis.png

 

 

 

 

3

数据库连接方式推荐

 

  • 数据库连接方式JNDI

  • JNDI名称使用变量局部配置

 

consumer-groups.png

 

 

consumer-groups.png

 

consumer-groups.png

 

 

 

长按,扫码,关注

及时收看更多精彩内容

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Kettle 数据库同步是一种数据传输和更新机制,通过将一个数据库的数据同步到另一个数据库中,以实现数据的一致性和完整性。Kettle是一个开源的ETL(Extract, Transform, Load)工具,可以对数据进行提取、转换和加载,广泛应用于数据集成和数据仓库领域。 Kettle 数据库同步的过程包括以下几个步骤。首先,需要配置源数据库和目标数据库的连接信息,包括数据库服务器地址、端口号、数据库名称、用户名和密码等。然后,通过Kettle提供的图形化界面,选择需要同步的表或数据,并设置同步的频率和方式。可以选择全量同步或增量同步,全量同步将源数据库中的所有数据复制到目标数据库中,而增量同步只同步源数据库中新增或修改的数据。 在Kettle中,可以使用多种方式进行数据库同步操作。其中一个常用的方式是使用Kettle的转换任务(Transformation)来实现数据库同步。转换任务是由一系列步骤组成的工作流程,可以对数据进行提取、转换和装载。在转换任务中,可以使用Kettle提供的输入、输出和转换步骤,通过连接源数据库和目标数据库,实现数据的传输和更新。可以使用输入步骤从源数据库读取数据,并通过转换步骤对数据进行清洗和转换,最后使用输出步骤将数据写入目标数据库中。 Kettle数据库同步具有以下优点。首先,它是一种灵活、可扩展和可定制的数据同步方式,可以根据具体需求进行配置和调整。其次,Kettle提供了一套丰富的转换步骤和功能,可以对数据进行复杂的处理和转换,满足不同的应用场景。此外,Kettle还支持多种数据库和文件格式,可以方便地进行不同数据库之间的数据传输和同步操作。 总之,Kettle数据库同步是一种实现数据一致性和完整性的重要工具,通过配置和使用Kettle工具,可以实现灵活、可定制的数据库同步操作,满足各种数据集成和数据仓库的需求。 ### 回答2: Kettle 数据库同步是指通过使用 Kettle 工具来实现两个或多个数据库之间数据的同步操作。Kettle 是一种强大的 ETL(抽取、转换和加载)工具,可以帮助用户在不同的数据库之间传输和转换数据,使数据保持同步和一致。 Kettle 数据库同步的步骤如下:首先,用户需要在 Kettle 工具中创建两个数据源,分别代表源数据库和目标数据库。然后用户可以使用 Kettle 的转换和任务功能来设计数据同步的流程。 在流程设计中,用户可以使用转换步骤中的输入步骤和输出步骤来读取源数据库中的数据并写入到目标数据库中。用户可以通过选择合适的表和字段来定义数据的筛选和转换规则。例如,可以通过使用过滤器、排序器和映射器来处理数据的条件、排序和格式等问题。此外,用户还可以使用插入、更新和删除步骤来实现数据的插入、更新和删除操作。 一旦定义了数据同步的流程,用户可以通过运行 Kettle 转换或任务来执行同步操作。Kettle 将根据流程中的定义,自动从源数据库读取数据并将其写入到目标数据库中。在同步过程中,Kettle 还会提供详细的日志信息和错误处理功能,以便用户可以及时发现和解决数据同步中可能出现的问题。 总结来说,Kettle 数据库同步是一种基于 Kettle 工具的数据传输和转换操作。它可以帮助用户在不同的数据库之间实现数据的同步和一致性,使得数据在不同数据库间保持更新和相互关联。 ### 回答3: kettle数据库同步是指通过kettle工具来实现不同数据库之间数据的同步和传输。kettle是一款开源的ETL(Extract-Transform-Load)工具,可以用于数据的抽取、转换和加载。它支持多种数据库,如Oracle、MySQL、SQL Server等。 数据库同步通常包括两个步骤:数据的抽取和数据的加载。 在数据抽取阶段,kettle可以连接到源数据库,并选择要抽取的数据表或视图。用户可以定义抽取数据的条件、筛选字段和数据转换规则等。kettle提供了多种抽取方式,如全量抽取、增量抽取和增量抽取+日志方式。用户可以根据具体需求选择适合的抽取方式。 在数据加载阶段,kettle可以连接到目标数据库,并选择要加载数据的目标表。用户可以定义数据的加载方式,如全量加载、增量加载和追加加载等。kettle还提供了数据清洗和转换功能,可以对抽取的数据进行处理,如数据清洗、字段转换、数据合并等。用户可以根据需要进行相应的数据处理。 kettle还支持数据同步的调度功能,用户可以定义定时任务,设置数据同步的频率和时间,实现自动化的数据同步过程。 总之,kettle数据库同步是一种方便、灵活的数据同步工具,可以实现不同数据库之间的数据同步和传输。通过kettle的抽取、转换和加载功能,可以满足不同需求的数据同步任务,并提供定时调度功能,实现自动化的数据同步过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值