none
saユーザがdb_owner権限を持つユーザーデータベースをオフラインにしたときの動作について RRS feed

  • 質問

  • お世話になります。

    SQL Server:2017 Standard
    OS:Windows Server 2016

    ※ユーザーデータベース:masterやtempではない、アプリケーションで使用するために新規作成したデータベース。

    ユーザーデータベースのdb_ownerロールをsaユーザに割り当てた場合、そのユーザーデータベースをオフラインにすると、

    saユーザはデータベースに接続できなくなり、SSMSでクエリエクスプローラを起動することもできなくなりました。

    しかしながら、どのユーザーデータベースからもdb_ownerロールを割り当てられていないsaユーザであれば、

    オフライン後もクエリエクスプローラの起動だけでなく、オフライン状態のユーザーデータベースを対象とした

    ALTER DATABASEクエリの実行まで可能でした。

    db_ownerロールの有無がこの動作の差異になるのでしょうか?

    また、saユーザに特定のユーザーデータベースロールを設定するのは、回避すべきでしょうか?

    よろしくお願いします。

    2020年2月10日 5:13

回答

  • SQL Server ログイン "sa" には、sysadmin 権限が付与されており、すべてのユーザーデータベースに対する db_owner 権限が自動的に付与されるため、個別のユーザーデータベースに対するロールを付与する必要はないかと思います。

    恐らく、"sa" の既定のデータベースが master から ユーザーデータベースに変わったので、今回の現象が発生したのではないかと推測しています。

    なお、明示的に接続するデータベースを "master" に指定することで、今回の現象は解消するかもしれません。

    • 回答としてマーク Narukami 2020年2月12日 5:20
    2020年2月10日 5:27

すべての返信

  • SQL Server ログイン "sa" には、sysadmin 権限が付与されており、すべてのユーザーデータベースに対する db_owner 権限が自動的に付与されるため、個別のユーザーデータベースに対するロールを付与する必要はないかと思います。

    恐らく、"sa" の既定のデータベースが master から ユーザーデータベースに変わったので、今回の現象が発生したのではないかと推測しています。

    なお、明示的に接続するデータベースを "master" に指定することで、今回の現象は解消するかもしれません。

    • 回答としてマーク Narukami 2020年2月12日 5:20
    2020年2月10日 5:27
  • 回答いただきまして、ありがとうございました。

    とりあえず、ユーザーデータベースのdb_owner権限を外すようにします。

    なお、接続先データベースはmasterのままだったため、このあたりはもう少し確認をしていこうと思います。

    ありがとうございました。

    2020年2月12日 5:20