現在の管理者ユーザーをSQL Server Express 2008に追加する

現在の管理者ユーザーをSQL Server Express 2008に追加する

私は (「eksperiments」で) SQL Express インスタンスから両方の Windows ユーザーを削除することに成功しました。現在、Windows 管理者としてログインしており、対応する SQL ログインを再作成しましたが、sysadmin 権限を割り当てることができません。次のエラーが発生します:

ユーザーにはこのアクションを実行する権限がありません。(Microsoft SQL Server、エラー: 15247)

管理者がこれを実行できない場合は、犠牲にする小動物を探し始めるべきでしょうか?

答え1

Windows 管理者アカウントに管理者権限がない可能性があります。これは設定内容によって異なります。権限のあるアカウントでログインするか、sa ユーザーとしてログインする必要があります。

SQL 認証が有効になっていない場合は、レジストリを調整して有効にすることができます。これが正しいキーだと思います:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode

混合モード (2) に設定する必要がありますが、もちろん、インスタンスをインストールしたときの sa パスワードを知っておく必要があります。

答え2

Windows 管理者アカウントにアクセスできる場合に、ローカル SQL Server インスタンスに対する sysadmin 権限の喪失からの回復を自動化するスクリプトが CodePlex にあります。

参考:

答え3

sqlcmd/osql よりも SSMS を使用する場合は、SQL Server インスタンスのサービスの開始権限を更新して、'-m' または -m"Microsoft SQL Server Management Studio - Query" を含めます。

次に、次のコマンドを使用してコマンド ライン経由で接続します。

sqlcmd -E -S HOSTNAME\INSTANCENAME

または、SSMS 経由で次のように接続します。

\\.\pipe\hostname\instancename\sql\query

これを使用してログインとロールを追加します。

CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO

その後、サービスの「-m」オプションを削除して、通常どおり起動できます。

見るhttp://msdn.microsoft.com/en-us/library/ms188236.aspx詳細については。

関連情報