サポート担当者は、SQL ServerDBの「sa」パスワードを変更しました。彼らはWindows認証をオフにしました。それから仕事をした人は去りました。
そのため、バックアップされておらず、ロックアウトされている本番データベースがあります。そして、その中の10年以上の生産データ。
SQLCmdコマンドラインから新しい役割を追加するという通常のトリックを試しました。
シングルユーザーモードでMSSQLSERVERをRetart
mS-DOSコマンドラインから「MSSql-S127.0.0.1\MSSQLSERVER」を発行してから、コマンドラインで次のコマンドを実行します。
USE [master]
GO
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
EXEC master..sp_addsrvrolemember @loginame = 'BUILTIN\Administrators', @rolename = 'sysadmin'
GO
通常どおりMSSQLSERVERを再起動します
しかし、SQL Management Studioでは、新しいユーザーと新しい役割の割り当てはどこにも見られません。 ユーザー
Master.sys.server_principalsにアクセスすると、新しいログインが表示されません。 server_principalsテーブル
Management Studioの既存のユーザーに役割を追加しようとすると、アクセス許可がないというメッセージが表示されます。 Windows管理者としてログインしていますが、「sa」ではありません(これは、回復またはリセットしようとしているパスワードであるため): 権限なし
MSSqlコマンドラインに戻り、上記のコマンドを再発行すると、プリンシパルが既に存在すると表示されます。 プリンシパルが存在します
マシン上にSQLの他のインスタンスはありません。私たちのネットワークには他のサーバーはありません。どこにでも表示されるエラーメッセージはありません。私は、Windows Server 2012R2の完全な管理者権限で上記を実行しています。
MSSqlコマンドラインがログインを作成してロールを割り当て、問題がないことを報告するのはなぜですか。ただし、SQL Server Management Studioにはエラーメッセージが表示されず、何も表示されません。 MSSQLSERVERを再起動しました。 ManagementStudioを再起動しました。
私は夢中になると思います。誰もが何をすべきかアイデアを持っていますか?
データへのアクセスを回復するには、以下の手順に従うことをお勧めします。
これを行うには、SQL Serverインスタンスを停止し、レジストリキーを調整します。このレジストリの変更は、フォームDBAがレジストリを変更したときにSSMSが行ったすべてのことです。このレジストリキーを変更して元に戻すことに問題はありません。インスタンスが実行されていないことを確認するだけです。
レジストリキーのパスは次のようになります:HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQLSERVER\MSSQLServer\LoginMode
。 Windows認証では、これが1に設定されているはずです。混合モードの場合は、この値を2
に変更します。
モジュールをインストールしたら、次のコマンドを使用できます: Reset-DbaAdmin 。これにより、「sa」アカウントをリセットして、インスタンスへのアクセスを再開するように求められます。
#Install from the gallery
Install-Module dbatools
# Import module and run command
Import-Module dbatools
Reset-DbaAdmin -SqlInstance YourServerName
それは私がそれをした数回私のために働いた。サーバーがシングルユースモードのときにsaパスワードをリセットしようとしましたか?