【问题标题】:Print my sa password打印我的sa密码
【发布时间】:2016-06-02 21:03:50
【问题描述】:

我已使用注册的“sa”sql 帐户登录到我的 sqlserver,并且 我想打印(而不是更改)我当前的密码。我可以更改它,但我有一个使用当前密码的应用程序。

我已经完成了

select * from sys.sql_logins where name ='sa'

但它给了我一个散列密码

如果不可能,如何将我的sa连接导出到另一个sql server实例?

【问题讨论】:

  • 我相信你可以只导出哈希并在另一个实例中导入它
  • 如果您的应用程序使用当前密码,那么为什么不在该应用程序中查找密码呢?更好的主意 - 不要将 sa 帐户用于任何应用程序。

标签: sql-server passwords sa


【解决方案1】:

警告 - 可怕的做法

更改您的应用程序以使用除 sa 以外的用户,最好没有系统管理员权限。通常数据库级别的 db_datareader、db_datawriter 和 MAYBE db_ddladmin 就足够了,尽管它可能需要在数据库上执行 GRANT EXECUTE。

如果你不能,那就再争论一些。书面形式。

如果您再次输了,请将 sa 密码更改为一个长而强的加密随机密码,以配合使用新密码更新的应用程序。

并确保该实例仅用于该应用,因此风险仅限于该区域。


恢复当前sa密码

首先,您是系统管理员,不是吗?您应该已经知道 sa 密码了!如果您输了两次,只需通过 ALTER LOGIN(如下)或 GUI 将另一个实例上的 sa 密码更改为相同的密码(或者,最好将它们都更改为更好的密码)。

其次,意识到该应用程序的每个用户都可以获得您的 SA 密码 - 他们几乎可以肯定地使用十六进制编辑器将其直接从应用程序中提取出来,查找字符串 pwd 或 pass(UCS-2“Unicode”或ASCII)。

你有应用程序,对吧?请咨询您当地的安全管理员,看看您是否可以在hex editor 中打开它并自己找到 sa 密码。


移动 sa 密码

一般来说,如果你想移动相同的密码,你可以使用

ALTER LOGINsa PASSWORD = 'hash string' HASHED

改变它。

不要经常这样做 - 如果有人得到你所有密码的哈希值(就像你得到它们一样),最好每个人都有一个唯一的盐,所以攻击者必须花费在他们开始寻找密码之前,对许多盐进行更多的工作测试。

不要从低保护到高保护这样做 - SQL Server 2005、2008 和 2008R2 都使用相同的算法。 SQL Server 2012 和 2014 使用相同。不要将 2005/8/8R2 哈希移动到 2012/14;它明显较弱(2012/14 密码哈希一开始就很可悲)。

因此,最好将密码更改为所需的明文密码,以便 SQL Server 生成新的 salt。密码哈希非常弱,是 SHA-1 或 SHA-512 的单次迭代,因此它需要它所能获得的所有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多