0

登録済みの「sa」SQL アカウントを使用して sqlserver にログインしましたが、現在のパスワードを (変更ではなく) 印刷したいと考えています。変更できますが、現在のパスワードを使用するアプリケーションがあります。

私はやった

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

しかし、それは私にハッシュ化されたパスワードを与えます

不可能な場合、sa 接続を別の SQL サーバー インスタンスにエクスポートする方法を教えてください。

4

1 に答える 1

2

警告 - 恐ろしい行為

アプリケーションを変更して、 sa 以外のユーザーを使用し、できれば sysadmin 権限を持たないようにします。通常、データベース レベルの db_datareader、db_datawriter、および MAYBE db_ddladmin で十分ですが、データベースで GRANT EXECUTE が必要になる場合があります。

それができないなら、もっと議論してください。書面で。

再び負けた場合は、アプリケーションが新しいパスワードで更新されるのに合わせて、sa パスワードを長くて強力な、暗号的にランダムなパスワードに変更してください。

また、インスタンスがそのアプリにのみ使用されるようにして、リスクがその 1 つの領域に限定されるようにします。


現在の sa パスワードの回復

まず、あなたはシステム管理者ですね。saのパスワードはすでに知っているはずです。2 回負けた場合は、ALTER LOGIN (下記) または GUI を使用して、他のインスタンスの sa パスワードを同じものに変更します (または、両方をより良いものに変更することをお勧めします)。

次に、そのアプリケーションのすべてのユーザーが SA パスワードを取得できることを理解してください。16 進エディターを使用して、文字列 pwd または pass (UCS-2 "Unicode" または ASCII) を探して、ほぼ確実にアプリケーションから SA パスワードを抽出できます。

あなたはアプリケーションを持っていますよね?ローカルのセキュリティ管理者に相談して、 16 進エディタで開いて自分で sa パスワードを見つけることが許可されているかどうかを確認してください。


sa パスワードの移動

一般に、同じパスワードを移動したい場合は、次を使用できます

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 の 1 回の反復であるため、得られるすべての支援が必要です。

于 2016-02-21T20:13:06.700 に答える