1.背景
在生产上部署了一个小web应用,用于从各个交易系统查询最新流水并展示, 由于年代久远,最初仅用于一个系统而且并未考虑风险等问题直接使用交易系统的数据库用户名密码,最近要求修改数据库用户为只读的查询用户.
2.解决方法
刚开始考虑直接修改SQL语句,类似
select * from log
修改为
select * from produser.log
```
后来发现需要修改的SQL太多遂搜索设置默认schema的解决方案
## 2.1 Oracle修改默认schema
在创建数据库连接后,执行以下SQL语句
```
alter session set current_schema = 'produser';
```
## 2.2 DB2修改默认schema
DB2则可以在JDBC连接中直接指定currentSchema
```
jdbc:db2://dbhost:60000/database:currentSchema=db2inst1;
```
注意:
1. jdbc连接最后必须有分号
2. currentSchema名称测试时必须输入大写,小写似乎有问题