我为我的网站保留了两个密码(就网站人类用户所知,实际上是相同的密码,但使用两种不同的算法和盐进行散列和加盐)。一个放在 WebUsers 表中,这是用户登录网站时验证密码的地方。另一种是oracle用户的密码,每个网站用户对应一个oracle用户。
在进行更改密码程序时,我必须在事务中更改 WebUsers 表以及 oracle 中的密码。问题是,DDL 语句 [alter user ...] 在执行任何操作之前提交。如果 [alter user ...] 失败并且在异常处理代码中我回滚事务,则不会回滚 WebUsers 表中的更改。有什么解决办法吗?