程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQLServer 附加數據庫後湧現只讀或掉敗的處理辦法

SQLServer 附加數據庫後湧現只讀或掉敗的處理辦法

編輯:MSSQL

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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved