Database is read-only 的解决方法

You need Read/Write permission on both MDF and LDF in order to editing data.  If you're using IIS 6.0, you need to add Network Process account and give Read/Write permission to these two files.  You also need to detach the database before changing the permissions on the file.  You can do this using SSEUtil.exe tool:
http://www.microsoft.com/downloads/details.aspx?FamilyID=FA87E828-173F-472E-A85C-27ED01CF6B02&displaylang=en

> SSEUtil.exe -child "NT Authority/Network Service" -detach

 

Thanks,
Lan 
   
- What is Network Process Account.
>>>  This account is use by IIS6.  For more detail on the account, see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconiis60applicationisolationmodes.asp

    - How can i create it.
>>> It should already created for you
    - What do you mean by detach.
>>> you need to detach the database to release the current info in master database; so that the next time you load the page, it load the new permission for this database
    - how can i use this tool for the same, as it is doing nothing when i have tried,
>>> here're the steps:

   1) open window explorer, go to your app_data folder of your web project (e.g. d:/mywebsite/app_data folder)
   2) select both *.mdf and *.ldf, right mouse click and click on Properties
   3) click on security tab, click "Add" button
   4) type <your Machine Name>/Network Service in the "Enter the object names to select textbox, click ok
   5) make sure Read and Write permissions checkboxes are checked and click ok
   6) open cmd window (assuming you already have a copy of SSEUtil tool)
   7) type SSEUtil -d d:/mywebsite/app_data/test.mdf  --- this step detach the database
   8) run your page

Hope that help,
Lan

1.  Delete the MDF/LDF files from the App_Data directory of the website under inetpub/wwwroot. 
2.  Download and install the SSEUTIL command line tool from:
      http://www.microsoft.com/downloads/details.aspx?FamilyID=FA87E828-173F-472E-A85C-27ED01CF6B02&displaylang=en
3.  Using sseutil, issue a command that looks something like:  sseutil -child "NT AUTHORITY/NETWORK SERVICE" -detach D:/  .  You will need to change the account name and the detach path to match your machine settings.  If on IIS5/5.1, then ASPNET will be the correct user account.  Also, you can determine the detach path pretty easily by issuing sseutil -list to see where the problematic MDFs are currently attached.  The "D:/" in the sample command line is just the first few characters that sseutil uses to auto-detach all databases that begin with "D:/".  Change the path as neeeded for your machine.
4.  Set the ACLs on App_Data directory under inetpub/wwwroot to grant R/W to the appropriate process account - NETWORK SERVICE on WS03 or ASPNET on IIS5/5.1.
5.  Re-copy the MDF/LDF files from the directory where the file-based website exists back into App_Data under inetpub/wwwroot.  After the copy occurs, check that the MDF/LDF files have now inherited the new ACLs.
6.  Re-run the application (ignore any connection errors that might occur - just hit refresh in the browser).

We are working on a fix in SSE that will eliminate the manual reconfiguration for RTM.

 


 

It's probably read only because the user that the SQL Server service runs as
only has read permissions on the files. Change the Windows permissions and
restart the database service.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值