是否可以在不创建新数据库连接的情况下对Sqlanywhere系统用户进行身份验证?

时间:2012-07-12 09:05:55

标签: passwords sqlanywhere

在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中可以调用的用于验证用户名密码组合的过程或函数。

1 个答案:

答案 0 :(得分:3)

使用SHA-256算法对SQL Anywhere中的密码进行哈希处理,但是这样做的确切方法是未发布的。在16.0或更高版本中,您可以使用sa_verify_password()存储过程来验证当前用户的密码。

如果要验证其他用户的密码,或者在v16之前使用服务器,验证密码的唯一方法是尝试使用该密码进行连接。< / p>

免责声明:我在SQL Anywhere工程中为Sybase工作。