SQLServer 附加數據庫後湧現只讀或掉敗的處理辦法。本站提示廣大學習愛好者:(SQLServer 附加數據庫後湧現只讀或掉敗的處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是SQLServer 附加數據庫後湧現只讀或掉敗的處理辦法正文
處理此成績的幾個症結點以下:
1、該景象只會湧現在NTFS文件體系中。
2、由NTFS文件體系的拜訪權限招致。
普通手工操作的處理計劃以下:
1、掌握面板—>文件夾選項—>檢查 封閉“應用簡略文件同享(推舉)”
2、選擇寄存數據庫文件的文件夾,右鍵選擇屬性,這時候會多出一個“平安”選項卡,選擇最初一個用戶,將該用戶的權限設為“完整掌握”。
經由這兩步操作後,數據庫附加掉敗或附加後只讀的成績便可處理。
上面重點講這兩步,用C#代碼的完成,由於當我們為項目打包後,弗成能讓用戶手工來履行這些操作
1、C#封閉簡略文件同享的代碼完成
在百度、Google搜刮此成績處理辦法時,許多的操作辦法其實不准確,經由本身現實操作測試,准確辦法以下:
注冊表文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"forceguest"=dword:00000000
批處置:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f
假如選中此項,則將上述 0x00000000 改成 0x00000001。
經由過程修正注冊表的方法完成代碼以下:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey software = key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true);
software.SetValue("forceguest", 0);
2、C#修正指定文件夾的用戶拜訪權限代碼完成以下:(將該用戶的權限設置為可寫)
string path = this.Context.Parameters["targetdir"];//獲得文件夾途徑
DirectoryInfo dInfo = new DirectoryInfo(path);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(Environment.UserName, FileSystemRights.CreateFiles, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);