我有一个.mdf / .ldf对,最初是在2008 R2标准中创build的,远低于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身份运行,而SQL Server Express以NetworkService身份运行,则SQL Server Express对数据库文件没有写权限是完全正确的,因为NetworkService帐户没有pipe理权限(尽pipe如此,根据你发布的ACL,它甚至不应该具有读取权限……但也许它们是从其他地方inheritance的)。
尝试将这些文件的完全控制权限授予NetworkService帐户,并且问题应该得到解决。
我最好的猜测是,这与SQL Server服务正在执行的帐户的权限有关。 它看起来像其他人之前已经看到这个问题 ,如果服务帐户可以读取您附加的文件,但不写入他们,数据库将处于只读状态。
这解决了我的附加数据库只读问题,即使权限重新授予数据库本身和上面的根文件夹! 在你去秃头之前试试这个。
这最初是由clonezilla引起的。 我把我的硬盘从一个SSD(操作系统)改为Massive 3TB硬盘。 我宁愿有慢,但宽敞的高清。 克隆之后,我将服务器(Homer … duh)重命名并复制,并将我的网站粘贴到一个较新的硬盘上,从而打破了我所有的D盘权限。 没有我的D驱动器数据库可以没有阅读唯一NAG! 这让我感到困惑,因为D 盘根目录子文件夹有所有权限重新授予,除了: MSSQL11 $ SQLEXPRESS这是去哪里?
很明显,我的D:\ SQLDATABASES \驱动器上有一个单独的目录,用于SQL和MySQL的所有数据库。 我已经给了所有的权限,然后一些,但仍然没有去! 事实certificate,我错过了MSSQL11 $ SQLEXPRESS
由于我在BestBuy购买了两个(3TB的硬盘驱动器),我的C驱动器和操作系统是一个克隆,我的D驱动器被愚蠢地复制和粘贴,并没有克隆这将解决这个烂摊子。
在总结,如果你有Windows Server 2012的,你已经检查了三倍的权限,但缺lessMSSQL11 $ SQLEXPRESS (你甚至不能添加这个权限…不存在)只需将你的数据库剪切并粘贴到默认的SQLpath和中提琴危机避免了。 我知道这是一个权限问题,但它正要被我的大锤解决! 请让这个简单的post帮助别人以外的人。
我的默认SQLpath如下:这是工作耶宝贝! 将其粘贴到Data目录中
C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA