java - Tomcat/数据库设置 - JDBC 连接池

标签 java oracle tomcat jdbc connection-pooling

我正在研究如何设置 Java EE 数据库(例如 Tomcat)与数据库(比方说 Oracle)的连接。

根据我正在阅读的内容,为每个用户建立的专用连接的使用效率不如使用“连接池”,因此这通常是首选设置。

这导致了这些问题:

问题 1) 如何最好地区分用户以确保他们不会以不正确的访问权限进行连接。例如,数据消费者不会以与管理员相同的权限连接。

根据我的表面理解,可能会为不同类别的用户设置不同类型的连接池,但显然管理员会小得多,或者可能使用过滤器。

问题 2) 如何使用连接池跟踪特定人员所做的更改。看起来每个人都有相同的登录名?如果是这样,我猜测登录身份验证是由 Web 服务器本身完成的,然后才能连接到数据库本身。

最佳答案

在任何情况下都不应向用户提供与您的数据库的连接。如果您授予远程用户数据库访问权限,他们可以对您的数据库做任何他们想做的事。例如,删除它。你不想要这个。您的网络服务器应该是唯一连接到数据库的东西。

您的网络服务器应该有访问数据库的方法来执行您明确允许具有给定权限的用户的操作。例如,管理员用户可能有权访问 banUser() 方法,该方法为 users 表中的记录设置 banned 标志。但是您不希望普通用户可以访问该功能。也许普通用户和管理员用户可以访问 editBio() 方法。这种歧视是由您的身份验证和授权机制处理的,听起来您需要继续阅读。

关于java - Tomcat/数据库设置 - JDBC 连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42428499/

相关文章:

java - 如何修复 JTable 中的列以使该列始终可见

java - Switch 语句而不是 if 语句

oracle - 每个表的 : single global sequence vs. 序列哪个更好?

oracle - SQL*Plus 输入 : How do you get input from user into varchar2 variable?

java - 带参数调用方法

java - 如何计算android中按钮的触摸次数

java - com.sun.jna 和 net.java.dev.jna 的区别?

oracle - "after servererror on database trigger"是个好主意吗?

tomcat - 即使在禁用 tls 后 SSLV3 也无法正常工作

java - 从其他项目读取 context.xml 文件