当我输入时:
CREATE DATABASE AdventureWorks2012
ON (FILENAME = 'C:\Users\sohm\Desktop\Pohm\AdventureWorks2012_Data.mdf')
FOR ATTACH_REBUILD_LOG ;
我明白了:
文件激活失败。物理文件名 “C:\ Users \ sohm \ Desktop \ AdventureWorks2012_Data_log.ldf”可能不正确。
Msg 5123,Level 16,State 1,Line 1
尝试时,CREATE FILE遇到操作系统错误5(访问被拒绝。) 打开或创建物理文件'C:\ adventuredb \ AdventureWorks2012_Data_log.ldf' Msg 1813,Level 16,State 2,Line 1
无法打开新数据库'AdventureWorks2012'。 CREATE DATABASE已中止。
我知道这与权限有关。我有管理员帐户。我已经阅读了一百万篇帖子但到目前为止还没有任何工作。此外,当我尝试将包含mdf文件的文件夹更改为完全控制时,它仍然会恢复为只读。
答案 0 :(得分:9)
您应该以管理员身份运行SSMS 您也可能将查询作为“sa”用户运行(sql server身份验证) 尝试使用Windows身份验证运行查询。
答案 1 :(得分:3)
短片
要允许MS SQL Server 2012附加数据库文件,您必须授予对mdf和ldf文件的完全访问权限:
NT Service \ MSSQLSERVER
完全访问
LONG VERSION
SQL安全性在2012年处理文件时已经大量更新。 http://technet.microsoft.com/en-us/library/ms189128.aspx
如果查看现有的附加数据库并且有安全性,您可能会发现只有2个角色允许完全访问。附加SQL时 MSSQLSERVER 和管理员从文件中删除所有其他角色。
尝试从fil安全权限设置MSSQLSERVER将不起作用。
查看您的services.msc概述,您将在默认安装中看到NT Service \ MSSQLSERVER也运行SQL Server servics。
服务帐户不可见,与IIS AppPools相同的问题,系统已创建子组并“隐藏”自动发现的帐户,可能是为了尝试保护帐户,但在我看来只是模糊不清设置。
问候扬1月
答案 2 :(得分:2)
以管理员模式打开SQL Server Management Stdio(右键单击 - >选择以管理员身份运行。如果要求输入用户名和密码,请输入管理员用户名密码)。然后选择Windows身份验证单击确定,现在尝试附加它将附带没有任何错误。
答案 3 :(得分:1)
这与您的帐户无关。 SQL Server正在尝试在运行SQL Server的服务帐户的上下文中写入该文件夹。您可以通过转到“服务”小程序并查看实例运行的对象(可能是NT AUTHORITY \ SYSTEM或其他)来查看这是谁。您可以覆盖它,也可以将MDF文件放在SQL Server已具有固有访问权限的数据文件夹中,而不是将它们放在C:\驱动器上的其他位置。
答案 4 :(得分:1)
解决此问题的另一种方法是将所有SQL Server服务更改为本地系统帐户而不是服务。开始 - >运行 - > Services.msc - >向下滚动到SQL Server,您应该看到以SQL Server开头的五个服务。右键单击,属性,登录,更改为本地系统帐户。对所有其余SQL Server服务重复此操作并重新启动它们。
答案 5 :(得分:0)
想出来。我去了sql server配置管理器并右键单击了SQL Server服务。然后我添加了我的Windows管理员帐户来运行该服务,现在它可以运行。
答案 6 :(得分:0)
尝试一下
转到存储mdf
文件的文件夹。
在mdf上选择file -> Right click -> click
会授予完全权限来归档登录用户的安全性。
如果仍然存在问题,并且可能是由于事务日志损坏引起的,则可以使用工具SQL Database Recovery Tool Repairs来修复损坏的mdf文件。