Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法附加数据库SQL Server 2012错误5_Sql_Sql Server 2012 - Fatal编程技术网

无法附加数据库SQL Server 2012错误5

无法附加数据库SQL Server 2012错误5,sql,sql-server-2012,Sql,Sql Server 2012,当我键入此项时: CREATE DATABASE AdventureWorks2012 ON (FILENAME = 'C:\Users\sohm\Desktop\Pohm\AdventureWorks2012_Data.mdf') FOR ATTACH_REBUILD_LOG ; 我明白了: 文件激活失败。物理文件名 “C:\Users\sohm\Desktop\AdventureWorks2012\u Data\u log.ldf”可能不正确。 Msg 5123,第16级,状态1,第1行

当我键入此项时:

CREATE DATABASE AdventureWorks2012
ON (FILENAME = 'C:\Users\sohm\Desktop\Pohm\AdventureWorks2012_Data.mdf')
FOR ATTACH_REBUILD_LOG ;
我明白了:

文件激活失败。物理文件名 “C:\Users\sohm\Desktop\AdventureWorks2012\u Data\u log.ldf”可能不正确。
Msg 5123,第16级,状态1,第1行
创建文件在尝试创建时遇到操作系统错误5(访问被拒绝) 打开或创建物理文件“C:\adventuredb\AdventureWorks2012\u Data\u log.ldf”。
Msg 1813,第16级,第2状态,第1行
无法打开新数据库“AdventureWorks2012”。创建数据库已中止


我知道这与权限有关。我有管理员帐户。我已经读了一百万篇文章,但到目前为止还没有任何效果。另外,当我尝试将包含mdf文件的文件夹更改为完全控制时,它会一直恢复为只读

这与您的帐户无关。SQL Server正在尝试在运行SQL Server的服务帐户的上下文下写入该文件夹。通过转到“服务”小程序并查看实例以谁的身份运行(可能是NT AUTHORITY\SYSTEM或其他方式),您可以看到这是谁。您可以覆盖该选项,也可以将MDF文件放在SQL Server已具有固有访问权限的data文件夹中,而不是放在C:\drive的其他位置。

这与您的帐户无关。SQL Server正在尝试在运行SQL Server的服务帐户的上下文下写入该文件夹。通过转到“服务”小程序并查看实例以谁的身份运行(可能是NT AUTHORITY\SYSTEM或其他方式),您可以看到这是谁。您可以覆盖它,也可以将MDF文件放在SQL Server已具有固有访问权限的data文件夹中,而不是放在C:\驱动器的其他位置。

解决了这个问题。我转到SQLServer配置管理器,右键单击SQLServer服务。然后我添加了我的Windows管理员帐户来运行该服务,现在它可以正常工作了。

解决了这个问题。我转到SQLServer配置管理器,右键单击SQLServer服务。然后我添加了我的Windows管理员帐户来运行该服务,现在它可以运行了。

您应该以管理员身份运行SSMS。
您也可能以“sa”用户身份运行查询(sql server身份验证)。

尝试使用windows身份验证运行查询。

您应该以管理员身份运行SSMS。
您也可能以“sa”用户身份运行查询(sql server身份验证)。

尝试使用windows身份验证运行查询。

SHORT VERSION

要允许MS SQL server 2012附加数据库文件,您必须将对mdf和ldf文件的完全访问权限授予:

NT服务\MSSQLSERVER

完全访问

长版本

SQL安全性在2012年的文件处理中进行了大量更新。

如果您查看现有的连接数据库和安全性,您可能会看到只有2个角色允许完全访问MSSQLSERVER管理员,当附加的SQL从文件中删除所有其他角色时

尝试从fil安全权限设置MSSQLSERVER将不起作用

查看services.msc概述,您将在默认安装中看到NT Service\MSSQLSERVER也运行SQL server服务

服务帐户不可见,这与IIS AppPools的问题相同,系统已创建一个子组,并“隐藏”帐户以防自动发现,可能是为了尝试保护帐户,但在我看来,这只是模糊了设置


问候一月

短版

要允许MS SQL server 2012附加数据库文件,您必须将对mdf和ldf文件的完全访问权限授予:

NT服务\MSSQLSERVER

完全访问

长版本

SQL安全性在2012年的文件处理中进行了大量更新。

如果您查看现有的连接数据库和安全性,您可能会看到只有2个角色允许完全访问MSSQLSERVER管理员,当附加的SQL从文件中删除所有其他角色时

尝试从fil安全权限设置MSSQLSERVER将不起作用

查看services.msc概述,您将在默认安装中看到NT Service\MSSQLSERVER也运行SQL server服务

服务帐户不可见,这与IIS AppPools的问题相同,系统已创建一个子组,并“隐藏”帐户以防自动发现,可能是为了尝试保护帐户,但在我看来,这只是模糊了设置


在管理员模式下打开SQL Server管理Stdio(右键单击->选择以管理员身份运行。如果它要求输入用户名和密码,请输入管理员用户名和密码)。然后选择Windows身份验证,单击“确定”,现在尝试附加,它将无任何错误地附加。

在管理员模式下打开SQL Server管理标准(右键单击->选择以管理员身份运行。如果要求输入用户名和密码,请输入管理员用户名和密码)。然后选择Windows身份验证,单击“确定”,现在尝试附加它将无任何错误地附加。

解决此问题的另一种方法是将所有SQL Server服务更改为本地系统帐户,而不是服务。开始->运行->服务.msc->向下滚动到SQL Server,您应该会看到五个以SQL Server开始的服务。右键单击,属性,登录,更改为本地系统帐户。对所有其他SQL Server服务重复此操作,然后重新启动它们。

解决此问题的另一种方法是将所有SQL Server服务更改为本地系统帐户,而不是服务。开始->运行->服务.msc->向下滚动到SQL Server,您应该会看到五个以SQL Server开始的服务。右键单击、属性、登录