【问题标题】:Is it possible to authenticate a Sqlanywhere system user without creating a new database connection?是否可以在不创建新数据库连接的情况下验证 Sqlanywhere 系统用户?
【发布时间】:2012-07-12 09:05:54
【问题描述】:

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

【问题讨论】:

  • 你有没有弄清楚所使用的哈希算法的细节?

标签: passwords sqlanywhere


【解决方案1】:

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

如果您想验证不同用户的密码,或者如果您使用的是 v16 之前的服务器,验证密码的唯一方法是尝试使用该密码进行连接。

免责声明:我在 Sybase 工作,从事 SQL Anywhere 工程。

【讨论】:

  • 我不认为您想在某处发布此信息?
  • 不,但我确实更新了我的答案以包含 16.0 版中提供的新功能。
  • 酷。你介意看一眼stackoverflow.com/questions/21101024/…吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 2019-09-03
  • 2018-03-22
相关资源
最近更新 更多