Java EE 应用中对前端用户的数据库操作的审计
2010-09-26 00:00:00 来源:WEB开发网设置用户标识信息。
执行一些数据库操作。
清除连接上的用户标识。
关闭数据库会话。
其中,清除连接上的标识非常重要,因为我们通常使用的数据库连接都是逻辑连接,关闭逻辑连接后其对应的物理连接 (TCP/IP 连接 ) 并未关闭,所以清除连接上的标识信息可以确保不影响别的数据库逻辑连接。
JDBC 4.0 提供的支持
Java 6 支持 JDBC 4.0 规范,在 JDBC 4.0 中提供了在数据库连接 java.sql.Connection 上传递用户信息的支持。在该接口中提供了两个方法:
void setClientInfo(String name, String value) throws SQLClientInfoException;
void setClientInfo(Properties properties) throws SQLClientInfoException;
第一个方法允许我们在 Connection 上传递三个属性:
ApplicationName:访问数据库的应用程序名称。
ClientUser: 访问数据库的用户标识,这个用户和建立数据库连接的用户是不同的。建立数据库连接的用户是被能数据库认证和被授权过的用户。
ClientHostname:访问数据库客户端的主机名。
第二个方法和第一个方法功能类似,只是将参数放到了一个 Properties 对象中。我们通常 setClientInfo(“ClientUser” , userId) 将用户标识附加在数据库连接上。使用该方法的常见模式是:
清单 1. 使用 JDBC 4.0 API 传递用户标识
Connection conn = getConnection();
conn.setClientInfo("ClientUser" , currentUserId);
//do something on the connection
conn.setClientInfo("ClientUser" , null);
conn.close();
更多精彩
赞助商链接