C# 尝试在指定文件位置创建数据库时,权限被拒绝

C# 尝试在指定文件位置创建数据库时,权限被拒绝,c#,sql-server,C#,Sql Server,我刚刚安装了SQL Server 2012 Express,正在运行一个C#程序,该程序尝试使用以下命令在指定位置创建数据库: create database [MyDatabase] on primary (name=N'MyDatabase.mdf', filename=N'C:\Users\myName\Documents\MyDatabase.mdf') log on (name=N'MyDatabase_log.ldf',

我刚刚安装了SQL Server 2012 Express,正在运行一个C#程序,该程序尝试使用以下命令在指定位置创建数据库:

create database [MyDatabase] 
    on primary (name=N'MyDatabase.mdf', 
        filename=N'C:\Users\myName\Documents\MyDatabase.mdf') 
        log on (name=N'MyDatabase_log.ldf', 
        filename=N'C:\Users\myName\Documents\MyDatabase_log.ldf')
程序和management studio均失败,错误如下:

Msg 5133,16级,状态1,第2行
文件“C:\Users\mikea\u 000\Documents\MyDatabase.mdf”的目录查找失败,原因是 操作系统错误5(访问被拒绝)。
Msg 1802,第16级,状态1,第2行
创建数据库失败。无法创建列出的某些文件名。检查相关错误

要授予SQL Server访问此目录的权限,需要执行哪些步骤?我通过集成安全性(SSMS中的Windows身份验证)进行连接,并且我的用户帐户是我机器上的管理员

我可以在不指定文件名的情况下创建和删除数据库,没有问题:

CREATE DATABASE foo

只需将
权限添加到用户
“NT服务\MSSQL$SQLEXPRESS”

或者在
services.msc
SQL Server(SQLEXPRESS)
service

中检查用户名。如果目标目录不在默认位置,我认为您需要授予SQL Server而不是用户使用该目录的权限

数据库引擎服务必须具有Windows文件系统的权限才能访问存储数据库文件的文件夹。默认位置的权限在安装过程中配置。如果将数据库文件放置在其他位置,则可能需要按照以下步骤向数据库引擎授予对该位置的完全控制权限

我也有同样的问题

要解决此问题,请右键单击每个.LDF和.MDF文件,然后单击安全性,然后为当前用户(我的用户是“用户(JG-LAPTOP\Users)”)勾选“完全控制”框


返回SQL Server,然后重试,它现在将成功附加。

我通过右键单击“Appdata”文件夹、属性\安全性并向用户授予完全控制权限来解决。MSSQLSERVER

我检查了用户名,它与您的状态相同。现在,如何为该用户添加权限?添加该用户在文件夹C:\Users\mikea\u 000\Documents\I中操作的所有权限我通过授予“NT Service\MSSQLSERVER”权限解决了此问题。下面的答案是一个更好的分步指南。这是正确的答案。我必须为默认数据库实例添加“完全控制”权限才能使其正常工作。总之:使用文件资源管理器转到要在其中创建数据库的文件夹;右键点击它;性质;安全编辑添加进入
NT服务\MSSQLSERVER
;核对姓名;好啊分配完全控制权;好啊