データベースをアタッチすると読み取り専用モードでアタッチされてしまう

SQL Serverデータベースをアタッチすると読み取り専用モードでアタッチされてしまう現象と対処法を紹介します。

現象

データベースをアタッチすると、読み取り専用モードでアタッチされます。

データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像1

原因

いくつか原因が考えられますが、よくある原因としてデータベースのでタッチ後にmdf,ldfファイルを移動した際に、 SQL Serverのアクセス権が外れてしまい、データベースファイルに書き込みができない場合があります。

こちらが元のデータベースファイルです。MSSQLSERVER のアクセス権がついています。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像2

こちらが読み取り専用になってしまうデータベースファイルです。MSSQLSERVERのアクセス権がありません。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像3

対処法

データベースファイルにMSSQLSERVERのアクセス権を付与します。ファイルに直接付与するのではなく、データベースファイルを格納しているフォルダに アクセス権を付与するほうがおすすめです。

データベースのファイルを格納しているフォルダのプロパティダイアログを表示します。上部の[セキュリティ]タブをクリックします。 下図の画面が表示されます。[編集]ボタンをクリックします。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像4

編集ダイアログが表示されますので[追加]ボタンをクリックします。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像5

[ユーザー または グループの選択]が表示されますので、NT SERVICE\MSSQLSERVER を入力し[名前の確認]ボタンをクリックします。 MSSQLSERVERアカウントが認識されますので、[OK]ボタンをクリックしてダイアログを閉じアカウントを追加します。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像6
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像7

MSSQLSERVER アカウントが追加できましたので、フルコントロールに設定します。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像8 データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像9

以上で設定は完了です。データベースをデタッチし、再度データベースをアタッチすると読み取り専用ではない状態でアタッチできます。

補足:データフォルダから、Usersのアクセス権を削除する

このままの設定でも問題ありませんが、SQL Serverインストール状態では、データを格納するフォルダにUsersのアクセス権はありませんので、アクセス権を削除する手順を紹介します。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像10
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像11

アクセス権を削除したいフォルダのプロパティダイアログを表示し、[セキュリティ]タブをクリックします。下図の画面が表示されます。 ダイアログ右下の[詳細設定]のボタンをクリックします。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像12

セキュリティの詳細設定のダイアログが表示されます。ダイアログ左下の[継承の無効化]ボタンをクリックします。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像13

下図の[現在継承されているアクセス許可で実行する処理]のダイアログが表示されます。すべてのアクセス権を削除してしまうと設定が大変ですので、 今回は[継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します]のタイルをクリックします。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像14

アクセス継承が無効になり、下図の画面が表示されます。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像15

削除したいUsersのエントリーをクリックして選択します。選択後ダイアログ下部の[削除]ボタンをクリックします。エントリーが削除できます。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像16

Usersのエントリーをすべて削除しました。[OK]ボタンをクリックします。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像17

データを格納しているディレクトリのUsersのアクセス権を削除できました。
データベースをアタッチすると読み取り専用モードでアタッチされてしまう:画像18


AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2022-01-03
Copyright © 1995–2025 iPentec all rights reserverd.