我刚刚安装了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
答案 0 :(得分:2)
只需将permissions
添加到用户"NT Service\MSSQL$SQLEXPRESS"
或者在services.msc
,SQL Server (SQLEXPRESS)
服务
答案 1 :(得分:1)
我遇到了同样的问题。
解决,右键单击每个.LDF和.MDF文件并单击安全性,然后为当前用户(我的是“用户(JG-LAPTOP \ Users)”)勾选框“完全控制”。
返回SQL Server然后重试,它现在将成功附加
答案 2 :(得分:0)
我认为如果不在默认位置,则需要授予sql server(而不是用户)使用目标目录的权限。
数据库引擎服务必须具有Windows文件系统的权限才能访问存储数据库文件的文件夹。在安装期间配置默认位置的权限。如果将数据库文件放在其他位置,则可能需要按照以下步骤授予数据库引擎对该位置的完全控制权限。
答案 3 :(得分:0)
我通过右键单击“ Appdata ”文件夹,“属性” \“安全性”并为用户“ MSSQLSERVER ”授予完全控制权限来解决< / p>