2013-02-20 59 views
1

當我鍵入:無法附加數據庫SQL Server 2012的錯誤5

CREATE DATABASE AdventureWorks2012 
ON (FILENAME = 'C:\Users\sohm\Desktop\Pohm\AdventureWorks2012_Data.mdf') 
FOR ATTACH_REBUILD_LOG ; 

我得到這個:

文件激活失敗。物理文件名 「C:\ Users \ sohm \ Desktop \ AdventureWorks2012_Data_log.ldf」可能不正確。
消息5123,級別16,狀態1,行1
創建文件遇到操作系統錯誤5(拒絕訪問。)試圖 打開或創建物理文件 'C:\ AdventureDB的\ AdventureWorks2012_Data_log.ldf' 。
Ms13 1813,Level 16,State 2,Line 1
無法打開新數據庫'AdventureWorks2012'。 CREATE DATABASE被中止。

我知道它與權限有關。我有管理員帳戶。我已經閱讀了一百萬篇文章,但到目前爲止沒有任何工作。另外,當我嘗試更改包含mdf文件的文件夾時,可以完全控制它,但它會一直恢復爲只讀狀態。

+0

請確保它尚未連接,SQL Server將完全控制MDF文件。 – Ulises 2013-02-20 21:09:36

+0

我做了,數據庫沒有連接 – eaglecoug 2013-02-20 21:13:01

+2

請確保運行sql server服務的帳戶完全控制該文件夾,因爲它需要讀取MDF並在其中創建一個新的LDF文件。忽略該文件夾的只讀屬性,它通常在Windows中被忽略,主要用於文件夾自定義。 – steoleary 2013-02-20 21:15:19

回答

1

這與您的帳戶無關。 SQL Server正試圖在運行SQL Server的服務帳戶的上下文中寫入該文件夾。您可以通過轉到服務小程序並查看實例的運行方式(可能是NT AUTHORITY \ SYSTEM或其他)來查看這是誰。您可以覆蓋它,或者您可以將MDF文件放在數據文件夾中,而SQL Server已具有固有的訪問權限,而不是將它們放置在C:\驅動器的其他位置。

0

想通了。我去了SQL Server配置管理器,並右鍵單擊SQL Server服務。然後我添加了我的Windows Admin帳戶來運行該服務,現在它可以工作。

9

您應該以管理員身份運行SSMS。
此外,您可能會將查詢作爲'sa'用戶(sql server身份驗證)運行。
嘗試使用Windows身份驗證運行查詢。

3

短版

爲了讓MS SQL Server 2012的附加數據庫文件,則必須授予完全訪問MDF和LDF文件:

NT服務\ MSSQLSERVER

Full Access

LONG VERSION

SQL安全性在2012年處理文件方面進行了很多更新。 http://technet.microsoft.com/en-us/library/ms189128.aspx

如果你看看現有的附加數據庫和安全性,你可能會發現只有2個角色允許完全訪問。 MSSQLSERVER管理員,連接時SQL從文件中刪除所有其他角色。

嘗試從fil安全權限設置MSSQLSERVER將不起作用。

查看您的services.msc概述,您將在默認安裝中看到NT Service \ MSSQLSERVER也運行SQL服務器服務。

該服務帳戶不可見,與IIS AppPools相同的問題,系統已創建一個子組,並從自動發現中「隱藏」帳戶,可能嘗試和保護帳戶,但在我看來只是模糊了設置。

問候

+0

您也可以爲每個將授予與目錄相同權限的文件啓用繼承。通常這將由管理員組完全控制。 – Woody 2013-10-01 20:55:16

+0

嗨,伍迪,你建議的解決方案在2012年無法使用。請參閱問題描述的最後一句。 – 2013-10-02 04:30:08

+0

謝謝!有用! – outlookrperson 2015-06-19 14:59:10

2

打開SQL Server管理STDIO在管理員模式(右鍵點擊 - >選擇以管理員身份運行。如果它要求用戶名和密碼,輸入您的管理員用戶名和口令)。然後選擇Windows身份驗證點擊確定,現在嘗試連接它將無任何錯誤地連接。

1

解決此問題的另一種方法是將所有SQL Server服務更改爲本地系統帳戶而不是服務。開始 - >運行 - > Services.msc - >向下滾動到SQL Server,您應該看到五個以SQL Server開始的服務。右鍵單擊,屬性,登錄,切換到本地系統帳戶。重複所有其他SQL Server服務並重新啓動它們。

相關問題