在Sybase Sqlanywhere中,系统用户存储在sys.sysuser中。
下面是表中的一个示例行,用户“dba”的密码为“sql”。
user_id 1
object_id 175
user_name 'DBA'
password 0x013819f1b5d5a9fd1ba98e5b999239277b6296bee4bc28653802cd103d50fa76141aef7500
login_policy_id 173
expire_password_on_login_policy_id 0
password_creation_time '2012-02-23 11:24:32.000'
failed_login_attempts 0
last_login_time '2012-06-27 17:33:00.000'
我想知道密码是如何散列的,或者是否有人知道可以调用在 Sqlanywhere 中验证用户名密码组合的过程或函数。
最佳答案
SQL Anywhere 中的密码使用 SHA-256 算法进行哈希处理,但执行此操作的确切方法尚未发布。在 16.0 或更高版本中,您可以使用 sa_verify_password()用于验证当前用户密码的存储过程。
如果您想要验证不同用户的密码,或者如果您使用的是 v16 之前的服务器,则验证密码的唯一方法是尝试使用该密码进行连接。
免责声明:我在 Sybase 从事 SQL Anywhere 工程工作。
关于passwords - 是否可以在不创建新数据库连接的情况下对 Sqlanywhere 系统用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11448428/