附加SQL Server資料庫時為唯讀解決辦法

來源:互聯網
上載者:User

現象:
    運行.Net的程式時,提示:“無法更新資料庫 "C:/PROGRAM FILES/MICROSOFT ASP.NET/ASP.NET AJAX SAMPLE APPLICATIONS/V1.0.61025/CONTACTS/APP_DATA/CONTACTS.MDF",因為資料庫是唯讀。
   
環境:
 

  • web.config配置:

    <connectionStrings>
     <!--Integrated Security=true;User Instance=True-->
     <add name="ContactsConnectionString" connectionString="Data Source=.;AttachDbFilename=|DataDirectory|/Contacts.mdf;uid=sa;pwd=123456;" providerName="System.Data.SqlClient"/>
    </connectionStrings>
 

  • 運行 SQL Server Management Studio(開始,運行:Sqlwb):

    從設定檔,看不出有什麼問題,已經具有最高許可權了,應該不影響讀寫。但是從資料庫列表中我們卻發現附件的資料庫是“唯讀”狀態。這應該是導致不能修改資料的原因。

原因:

 

  • 附加資料庫時,資料庫檔案的屬性是唯讀。
  • 運行SQL Server執行個體的帳戶對附加的資料庫檔案不具備相應的修改許可權。
     

解決辦法:

 

  • 取消檔案的唯讀屬性。

    在取消檔案的“唯讀”屬性後,查看資料庫屬性可能仍然是“唯讀”的,可能還需要進行下面的操作。
 

  • 查看運行SQL Server執行個體的帳戶。

    在服務(Services.msc)管理主控台中或者SQL Server組態管理員(Configuration Manager)中查看:
 


 
  • 如所示,如果啟動SQL Server執行個體的帳戶是Network Service,那麼將其修改為Local Service,然後重新啟動SQL Server執行個體。如果是指定的帳號用於啟動SQL Server執行個體,那麼進行下面操作。
  • 修改檔案安全屬性。

    ,將本例中運行SQL Server執行個體的帳戶SqlBoot添加到對物理檔案Contacts.mdf的存取權限列表中。如果存在記錄檔,相應地,記錄檔屬性也應添加。其實,這裡我們發現,在上面也可以不修改啟動SQL Server執行個體的帳戶,直接將啟動SQL Server執行個體的帳戶Network Service或者Local Service添加到對資料庫物理檔案的存取權限列表中即可。
   
附:

 

  •  附件資料庫的T-SQL語句:

    CREATE DATABASE Contacts
    ON (filename='C:/Program Files/Microsoft ASP.NET/ASP.NET AJAX Sample Applications/v1.0.61025/Contacts/App_Data/Contacts.mdf')
    FOR ATTACH

  • 關於之前使用“sp_attach_db”附加資料庫,微軟建議不要繼續使用。”重要事項:後續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並應著手修改當前還在使用該功能的應用程式。我們建議您改用 CREATE DATABASE database_name FOR ATTACH。“

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.