Sql-Server
為什麼我的數據庫在連接到 SQL Express 時是只讀的,而不是在 SQL Web 上?
我有一個 .mdf/.ldf 對,最初是在 2008 R2 Standard 中創建的,遠低於 10GB,帶有 ACL:
d:\db snapshot\DB_NAME.mdf SERVERNAME\SQLServerMSSQLUser$ACCOUNT$MSSQLSERVER:F OWNER RIGHTS:F BUILTIN\Administrators:F d:\db snapshot\DB_NAME_log.ldf SERVERNAME\SQLServerMSSQLUser$ACCOUNT$MSSQLSERVER:F OWNER RIGHTS:F BUILTIN\Administrators:F
當我將數據庫附加到 SQL Express 2008 R2 的實例時,它顯示為只讀。當使用 SQL Web 2008 R2 設置*完全相同的acls 和使用者帳戶以及 SQLCMD 語句時,它就會變成可寫的。*我查看了 MSDN 的比較頁面,但沒有任何反應。為什麼會發生這種情況?謝謝!
如果 SQL Server Web 執行為
LocalSystem
while 而 SQL Server Express 執行為NetworkService
,那麼 SQL Server Express 對數據庫文件沒有寫權限是完全正確的,因為該NetworkService
帳戶沒有管理權限(儘管基於您發布的 ACL,它甚至不應該具有讀取權限……但也許它們是從其他地方繼承的)。嘗試將這些文件的完全控制權限授予該
NetworkService
帳戶,該問題應該得到解決。