SQL Server事务日志中登录密码是否可见?管理员能否获取明文密码?
SQL Server事务日志与登录密码的安全性
问题1:管理员能否通过事务日志的ALTER LOGIN操作获取明文密码?
- 不能。执行
ALTER LOGIN ... WITH PASSWORD语句时,SQL Server不会将明文密码写入事务日志,日志中仅会记录该操作的元数据(比如操作类型、登录名)以及密码的哈希值(而非明文)。管理员无法从事务日志中提取出登录账号的明文密码。
问题2:调用EXEC sp_password时,登录名和密码是否会以明文存储在事务日志中?
- 同样不会。
sp_password是早期SQL Server版本用于修改密码的存储过程,即使在该过程中传入明文密码,SQL Server也仅会在内部计算密码哈希,事务日志里只会留存操作相关的元数据和哈希值,不会存储明文密码。另外需要说明,sp_password目前已被ALTER LOGIN取代,官方推荐使用后者进行密码管理。
核心结论
无论使用ALTER LOGIN还是旧的sp_password,登录密码的明文都不会出现在SQL Server事务日志中。管理员无法从事务日志或系统存储的哈希值逆向推导出明文密码(SQL Server使用的哈希算法是单向不可逆的),因此密码在包括事务日志在内的所有场景中都处于安全状态,管理员也无法获取明文。
内容的提问来源于stack exchange,提问作者Salah
相关产品推荐
相关产品推荐

