据我所知,绝大多数网络应用程序使用单一数据库登录凭据,通常硬编码到应用程序代码本身或安全配置文件中。应用程序逻辑和会话负责管理用户与数据库的交互;数据库仍然不知道谁在做什么。
但是,我想利用MySQL's current_user()
+触发器来执行特定于单个用户的某些数据库操作。这要求用户使用其唯一的MySQL凭据进行数据库连接。由于PASSWORD()
散列MySQL password
不能用于建立连接,因此需要app(1)以明文形式将用户的MySQL pwd存储在数据库表或ACL file
中,并且( 2)在会话中以明文形式存储它,以便在建立连接时使用。那不太理想。
这样做有更好,更安全的方法吗?