web-dev-qa-db-ja.com

SQL Serverのsysadminロールにユーザーを追加できません

SQL Server 2008 Management Studioを使用しています。現在のログオンアカウントは、マシンのローカル管理者グループに属しています。 SQL Server 2008でWindows統合セキュリティモードを使用しています。

私の問題は、SQL Server Management Studioにログインした後、[セキュリティ/ログイン]でログイン名を選択し、[サーバーロール]タブを選択して、最後の項目を選択します-sysadminを使用して自分をこのグループ/ロールに所属させますが、十分な権限がありません。何か間違っているアイデアはありますか?ローカル管理者は何でもできるはずだと思います。 :-)

9
George2

権限を設定しようとするセッションのログインには、権限が必要です。

では、使用しているログインはローカル管理者ですか?つまり、ローカル管理者グループには十分な権限がありません。

GUIもこれを実行します sp_addsrvrolemember 。これは言うが

新しいメンバーが追加されるロールのメンバーシップが必要です。

したがって、ローカル管理者グループはsysadminのメンバーではありません。

編集:

解決するには:権限を持つログインを使用します。 sp_helpsrvrolemember を使用して検索できます

6
gbn

それ以外の点では優れた記事 トラブルシューティング:システム管理者がロックアウトされている場合のSQL Serverへの接続 、著者は、SQL Serverの制御を回復するために必要なのは

"-mまたは-fオプションのいずれかを使用して、SQL Serverのインスタンスをシングルユーザーモードで起動します。コンピューターのローカルAdministratorsグループのメンバーは、sysadmin固定サーバーロールのメンバーとしてSQL Serverのインスタンスに接続できます。 」

残念ながら、シングルユーザーモードで起動することの意味は直感的な問題ではありません。また、少なくとも私の経験では、私のコンピューターのローカル管理者グループのメンバーシップでは、「ユーザー」アカウントにsysadminステータスが付与されませんでした。

この話は、DC以外のサーバーによるドメインのメンバーシップの問題(ISPの変更の結果)に対処するときに始まり、2008年からDCをWindows Server 2008 R2に再構築しました。これはいくつかのマイナーな問題を解決しましたが、エラーのあるサーバーによるメンバーシップの問題に対処していませんでした。

SQL Server 2008は、2番目のサーバー(ドメインのメンバー)に存在します。ここに問題があります。 ServerFaultについて誰かが指摘しているように、Server 2008をインストールするときは、「現在のユーザーをsysadminにする」をプッシュするのが一般的です。他の人を考慮しないことも一般的です。その単一ユーザーIDは存在しなくなったドメインのドメインメンバーであったため、SQL Serverを管理する権限がありませんでした。

SQL Serverのインストール時にいたローカルサーバー管理者としてログオンしましたが、これによりManagement Studioにアクセスできましたが、BUILTIN\Administratorsには "パブリック"サーバーロールしか割り当てられていないことがすぐにわかりました。

多くの研究と実験の後、シングルユーザーログオンの詳細を提供する記事 http://technet.Microsoft.com/en-us/library/ms180965.aspx

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

このステップを実行する準備をするには、SQL Serverをシャットダウンする必要があります(ほとんどの場合、デフォルトで実行されます)。 SQL構成マネージャーを使用して「SQL Server」を停止します。

次に、コマンドプロンプトで、そのプログラムファイルの場所(またはコンピューター上の同等の場所)に移動し、 "sqlservr.exe -m"コマンドを発行します。コマンドプロンプトにアクティビティのストリームが記録されている場合は、成功しています。起動に失敗した場合は、おそらくSQL Serverが既に実行されています。シャットダウンして。

シングルユーザーインスタンスがデータベースに接続できるようにします。ログアクティビティが停止したら、Management Studioを開きます。自動的にシングルユーザーモードになるため、ユーザーが表すアカウントはすべてsysadminになります。その権限を使用して、セキュリティログインとサーバーの役割を調整します。

私の場合、新しいドメインでドメインアカウントを再作成し、SQL Serverでそれらの名前を削除し、それらを再構築して(SID/GUIDの状況により)、必要に応じて特定のデータベースへのアクセス許可を再割り当てする必要がありました。

4

SQL Server 2008は、sysadmin固定サーバーロールのメンバーとしてBUILTIN\Administratorsを追加しなくなりました

そのとおりですが、その場合は、SQL Serverサービスをシングルユーザーモード(緊急モード)で開始する状況から回復でき、ローカル管理者はログオンできます。

[〜#〜] msdn [〜#〜] を参照してください。

3
Jordi

デフォルトでは、SQLはグループBUILTIN\Administratorsをsysadminロールに追加します。つまり、すべてのローカルNT管理者は自動的にSQL sysadminになります。 Vistaでは、UACのため、この特権を利用するには「管理者として」モードで実行する必要があります。

  • Vistaを使用している場合は、「管理者として」クライアントツール(SSMS)を実行し、自分をsysadminとして追加してみます。
  • BUILTIN\Administratorsグループが誤ってsysadminロールから削除された場合は、別のsysadminログインでログインする必要があります。他のsysadminログインがない場合は、SQL認証を使用してsaとしてログインし、セットアップ中に設定されたsaパスワードを使用する必要があります。 sysadminのメンバーとしてログインしたら、広告BUILTIN\Admisnitratorsをsysadminロールに戻します。 SQLログインが無効になっている場合、おめでとうございます。SQLのインストールからロックアウトするだけです。
  • BUILTIN\Administratorsグループがsysadminロールから意図的に削除された場合( KB932881 に従って)、権限のないシステムにハッキングしようとしています。
2
Remus Rusanu

既定では、SQL Server 2008はBUILTIN\Administratorsをsysadmin固定サーバーロールのメンバーとして追加しなくなりました。インストーラーを実行すると、どのアカウントにsysadmin権限が必要かが尋ねられます。基本的に「make me a sysadmin」と書かれたボタンがあり、インストールを行っているユーザーのアカウントをsysadminとして追加します。

他のユーザーをsysadminsとして追加しなかった場合、そのユーザーのみが現在sysamdinです。そのユーザーにSQL Serverにログインしてもらい、DBAにsysadmin権限を付与する必要があります。

1
mrdenny

新規インストール後、SQL Server 2008でサーバーを登録するまで同じ問題を検討しました。

0
HyperionQuest