我试图在中执行以下脚本:
USE [master]
GO
CREATE DATABASE [test1] ON PRIMARY (
NAME = N'test1',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf',
SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB)
LOG ON (
NAME = N'test1_log',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1_log.ldf',
SIZE = 164672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)但我发现了错误:
Msg 5123,级别16,状态1,第2行创建文件遇到操作系统错误5(访问被拒绝。)时试图打开或创建物理file 'C:\Program \MicrosoftMsg 1802,级别16,状态4,第2行创建数据库失败。无法创建列出的一些文件名。检查相关错误。
我的用户已经拥有了所有的角色权限,有什么问题吗?
发布于 2012-08-10 08:03:18
您得到了一个权限错误。运行Server的帐户在包含数据库文件的文件夹上没有所需的权限。
您需要让运行Server (而不是帐户)的帐户完全控制C:\Program \Microsoft\MSSQL10.SQLEXPRESS\MSSQL\DATA。
发布于 2012-08-09 22:06:47
基于我们的评论线程,听起来你可能在安装过程中有点偏侧了。安装程序允许您选择默认的数据目录,并为您指定的服务帐户设置该目录的适当权限。
在您的CREATE DATABASE语句中,您指定了一个位置,但该位置是否是原始设置中指定的位置?服务帐户改变了吗?
测试它的一种方法是只运行一个泛型
CREATE DATABASE [test1];
GO如果您得到相同的错误,那么可能服务帐户已经更改,或者NTFS权限的某些内容已经更改。
解析路径(也基于注释字符串)是确认正在运行Server的服务在您指定的路径上具有R/W权限。为此,请执行以下操作:
从服务列表中开始->Run->services.msc->scroll,直到您找到Server>右击->属性->登录选项卡
现在去确保该帐户对该目录有适当的权限来执行它需要做的事情。
发布于 2012-08-09 20:23:32
似乎在提供的路径中有不正确的空格数,所以它不是匹配的文件夹树。
Sql server不会创建不存在的路径。
编辑:
你最初的帖子是:
...\Microsoft SQL Server\...
...\Microsoft SQL Server\...我猜这不是现存的路径,当它们被冒号所占据时,有多大的空间是相关的。
https://dba.stackexchange.com/questions/22250
复制相似问题