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

时间:2014-02-09 19:31:34

标签: 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', 
        filename=N'C:\Users\myName\Documents\MyDatabase_log.ldf')

这在程序和管理工作室都失败了,出现以下错误:

  

Msg 5133,Level 16,State 1,Line 2
  文件“C:\ Users \ mikea_000 \ Documents \ MyDatabase.mdf”的目录查找失败,   操作系统错误5(访问被拒绝。)   消息1802,级别16,状态1,行2   CREATE DATABASE失败。无法创建列出的某些文件名。检查相关错误。

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

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

CREATE DATABASE foo

4 个答案:

答案 0 :(得分:2)

只需将permissions添加到用户"NT Service\MSSQL$SQLEXPRESS" 或者在services.mscSQL Server (SQLEXPRESS)服务

中查看用户名

答案 1 :(得分:1)

我遇到了同样的问题。

解决,右键单击每个.LDF和.MDF文件并单击安全性,然后为当前用户(我的是“用户(JG-LAP​​TOP \ Users)”)勾选框“完全控制”。

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

答案 2 :(得分:0)

我认为如果不在默认位置,则需要授予sql server(而不是用户)使用目标目录的权限。

  

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

http://msdn.microsoft.com/en-us/library/jj219062.aspx

答案 3 :(得分:0)

我通过右键单击“ Appdata ”文件夹,“属性” \“安全性”并为用户“ MSSQLSERVER ”授予完全控制权限来解决< / p>