none
サーバーロールのロールメンバーを追加するための権限について RRS feed

  • 質問

  • みなさん、こんにちわ!
    お世話になります。

    早速ですが、質問させて頂きます。

    SQL Server Management Studioを使って Windows認証で SV1とSV2に
    接続しています。

    ここで、サーバーロールのロールメンバー追加を行った所、SV1では
    メンバーの追加ができるのですが、SV2への追加を行った場合には

    「ユーザーにはこの操作を実行する権限がありません。
      MS SQL Server エラー:15247」 となり、追加する事ができません。

    同じアカウント(ドメインでAdministrator権限を持つ)で接続しており、
    「同じように操作できたのではなかったかな?」と思っているのですが、
    SQL Server側でも何らかの権限付与等が必要だったのでしょうか

    即ち、接続に使用したアカウントは管理者権限を持っている筈なのですが、
    SV1とSV2で同じように振る舞う事ができず、困っています。
    また、サーバーそのものも SV1/SV2共に同じ設定になっている筈です。

    上記違いが生じる原因を探るには、どの辺りを調べれば宜しいでしょうか。

    ご教授下さいますよう、宜しくお願い致します。

    2011年2月7日 2:25

回答

  •  2.SV2では、public のみチェックが入っており、チェックを入れようとしても
       「・・・権限がありません。」と表示されセットできません。

    SV2にログインする際に使用しているユーザーがpublicにしか属していないため、権限の変更など重要な操作が一切できなくなっています。SV2にsaや管理者権限のあるユーザーでログインし、今、SV2にログインしているユーザーを適切なロールに加えて下さい。

    との事ですが、SQL Server での管理者権限を付与する処置が別に必要
    なのでしょうか。
    SQL Server での管理者権限を持つにはどうすればよろしいのでしょうか?

    そのユーザーをsysadminロールに加えて下さい。

    そもそも、SQL Server での管理者権限はドメインのアカウントに依るのではなく
    同じアカウントでも SQL Server 毎に権限を付与する事になるのでしょうか

    前の投稿でも書きましたが、SQL Server 2008以前は、WindowsのAdministrators グループに属するユーザーは、SQL ServerのBUILTIN\Administrators グループに自動的に割り当てられ、このグループはsysadminロールに属していたため、結果的にWindowsのAdministrators グループに属するユーザーは、どのSQL Serverにログインしてもsysadminの権限がありました。
    SQL Server 2008以降はこの仕組みがなくなりましたので、SQL Server毎に権限をきちんと設定する必要があります。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年2月7日 4:59

すべての返信

  • SQL Server Management Studioで、セキュリティ → ログイン で、ユーザーを表示し、そのユーザーのプロパティでサーバーロールを確認されてみてはいかがでしょうか?
    また、SQL Server 2008であればBuildin\Administratorが無くなりましたので、Windows Serverの管理者権限を持っていたとしても、SQL Serverでは管理者権限でログインすることはなくなりました。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年2月7日 3:04
  • trapemiya さん、いつもお世話になります。


    早速ですが、ログインしたアカウントのサーバーロールを確認しました。

     1.SV1では、public と sysadmin にチェックが入っています。
     2.SV2では、public のみチェックが入っており、チェックを入れようとしても
       「・・・権限がありません。」と表示されセットできません。
      
    使用しているサーバーは、SQL Server 2008 です。

    > Windows Serverの管理者権限を持っていたとしても、SQL Serverでは
    > 管理者権限でログインすることはなくなりました。

    との事ですが、SQL Server での管理者権限を付与する処置が別に必要
    なのでしょうか。
    SQL Server での管理者権限を持つにはどうすればよろしいのでしょうか?

    そもそも、SQL Server での管理者権限はドメインのアカウントに依るのではなく
    同じアカウントでも SQL Server 毎に権限を付与する事になるのでしょうか

     

    そう言われるとSV1 においても、以前サーバーロールの sysadmin にチェック
    を入れる操作を行った、かすかな記憶が在るのですが・・・

    いま質問させて頂いている状態では、Management Studio の同じアカウントで
    接続した状態で、SV1ではサーバーロールのチェックを自由にセット/リセット
    できるのに SV2では、これができないのです。

    まとまり無く、だらだら書いてしまいましたが、どうぞ宜しくお願いします。

    2011年2月7日 4:37
  •  2.SV2では、public のみチェックが入っており、チェックを入れようとしても
       「・・・権限がありません。」と表示されセットできません。

    SV2にログインする際に使用しているユーザーがpublicにしか属していないため、権限の変更など重要な操作が一切できなくなっています。SV2にsaや管理者権限のあるユーザーでログインし、今、SV2にログインしているユーザーを適切なロールに加えて下さい。

    との事ですが、SQL Server での管理者権限を付与する処置が別に必要
    なのでしょうか。
    SQL Server での管理者権限を持つにはどうすればよろしいのでしょうか?

    そのユーザーをsysadminロールに加えて下さい。

    そもそも、SQL Server での管理者権限はドメインのアカウントに依るのではなく
    同じアカウントでも SQL Server 毎に権限を付与する事になるのでしょうか

    前の投稿でも書きましたが、SQL Server 2008以前は、WindowsのAdministrators グループに属するユーザーは、SQL ServerのBUILTIN\Administrators グループに自動的に割り当てられ、このグループはsysadminロールに属していたため、結果的にWindowsのAdministrators グループに属するユーザーは、どのSQL Serverにログインしてもsysadminの権限がありました。
    SQL Server 2008以降はこの仕組みがなくなりましたので、SQL Server毎に権限をきちんと設定する必要があります。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年2月7日 4:59
  • trapemiya さん、有り難うございました。

    SV2 のローカルマシーンのアカウント(administrator)のみ、SQL Serverの sysadmin の
    権限を持っていました。
    この権限を使って必要なアカウントに権限を付与する事ができ、問題解決しました。

    また、SQL Server毎に権限をきちんと設定する必要がある事も理解しました。

    どうも、有り難うございました。
    これにて、このスレッドはクローズさせて頂きます。

    2011年2月7日 7:28