您正在使用 IPV4 [216.73.216.162] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]保护绿色环境,构建和谐社会      

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中      
[公益] 地球是我家,绿化靠大家      
2025年 七夕节 053
2025年 教师节 065
2026年 元 旦 178
2026年 春 节 225
综合数码金融娱乐服务报刊政府机构 推荐 排名 今日 申请 友情  
您现在的位置:首页 >> 数据库 >> 内容
本类新增
本类热门
SQLServer 附加数据库后出现只读或失败的解决方法
内容摘要: 1、该现象只会出现在NTFS文件系统中。2、由NTFS文件系统的访问权限导致。一般手工操作的解决方案如下:1、控制面板—文件夹选项—查看关闭“使用简单文件共享(推荐)”2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。下面重......
1、该现象只会出现在NTFS文件系统中。

2、由NTFS文件系统的访问权限导致。

一般手工操作的解决方案如下:

1、控制面板—>文件夹选项—>查看关闭“使用简单文件共享(推荐)”

2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。

经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。

下面重点讲这两步,用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作

1、C#关闭简单文件共享的代码实现

在百度、Google搜索此问题解决方法时,很多的操作方法并不正确,经过自己实际操作测试,正确方法如下:

注册表文件:

WindowsRegistryEditorVersion5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]

"forceguest"=dword:00000000

批处理:

regaddHKLM\SYSTEM\CurrentControlSet\Control\Lsa/vforceguest/tREG_WORD/d0x00000000/f

如果选中此项,则将上述0x00000000改为0x00000001。

通过修改注册表的方式实现代码如下:

Microsoft.Win32.RegistryKeykey=Microsoft.Win32.Registry.LocalMachine;

Microsoft.Win32.RegistryKeysoftware=key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa",true);

software.SetValue("forceguest",0);

2、C#修改指定文件夹的用户访问权限代码实现如下:(将该用户的权限设置为可写)

stringpath=this.Context.Parameters["targetdir"];//得到文件夹路径

DirectoryInfodInfo=newDirectoryInfo(path);

DirectorySecuritydSecurity=dInfo.GetAccessControl();

dSecurity.AddAccessRule(newFileSystemAccessRule(Environment.UserName,FileSystemRights.CreateFiles,AccessControlType.Allow));

dInfo.SetAccessControl(dSecurity);

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:mysql误删root用户恢复方法

 

下一篇:SQL 返回期间内的所有日期

发布日期:2023/9/27
手机扫二维码直达本页
发布时间:14:31:09
点  击:12
录  入:齐天大圣
相关文章
Baidu
YiJiaCMS 7.5.8 build250610(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,1号CDN提供加速防护
运行时间载入中.....