我已使用注册的“sa”sql帐户登录我的sqlserver 我想打印(不更改)我当前的密码。我可以更改它,但我有一个使用当前密码的应用程序。
我已经完成了
从sys.sql_logins中选择*,其中name ='sa'
但它给了我一个哈希密码
如果不可能,如何将我的sa连接导出到另一个sql server实例?
答案 0 :(得分:2)
将您的应用程序更改为使用其他用户,最好不使用sysadmin权限。通常数据库级db_datareader,db_datawriter和MAYBE db_ddladmin就足够了,尽管它可能需要对数据库执行GRANT EXECUTE。
如果你做不到,那就争论更多。写作。
如果您再次失败,请将sa密码更改为一个长而强大的加密随机密码,与使用新密码更新的应用程序一致。
并确保该实例仅用于该应用,因此风险仅限于该区域。
首先,你是一个系统管理员,不是吗?你应该已经知道了sa密码!如果你输了两次,只需将另一个实例上的sa密码更改为同一个(或者,更好,将它们更改为更好的东西),通过ALTER LOGIN(下面)或GUI。
其次,要意识到应用程序的每个用户都可以获得SA密码 - 他们几乎可以肯定地使用十六进制编辑器从应用程序中提取它,查找字符串pwd或pass(UCS-2“Unicode”或ASCII)。
你有申请,对吗?请咨询您当地的安全管理员,看看是否允许您在hex editor中打开它并自行查找密码。
通常,如果要移动相同的密码,可以使用
ALTER LOGIN sa PASSWORD ='哈希字符串'HASHED
改变它。
不要经常这样做 - 如果有人得到你所有密码的哈希值(就像你得到它们一样),最好每个人都有一个独特的盐,所以攻击者必须花钱在开始查找密码之前,需要对许多盐进行更多测试。
不要从低保护到高保护这样做 - SQL Server 2005,2008和2008R2都使用相同的算法。 SQL Server 2012和2014使用相同的。不要将2005/8 / 8R2哈希值移至2012/14;它显着较弱(并且2012/14密码哈希开始时是可悲的)。
因此,您最好将密码更改为明文中所需的密码,因此SQL Server会生成新的盐。密码哈希非常弱,只需SHA-1或SHA-512的一次迭代,因此需要它可以获得的所有帮助。