首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建文件遇到操作系统错误5(访问被拒绝)。

创建文件遇到操作系统错误5(访问被拒绝)。
EN

Database Administration用户
提问于 2012-08-09 20:19:59
回答 4查看 126.9K关注 0票数 19

我试图在中执行以下脚本:

代码语言:javascript
复制
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行创建数据库失败。无法创建列出的一些文件名。检查相关错误。

我的用户已经拥有了所有的角色权限,有什么问题吗?

EN

回答 4

Database Administration用户

回答已采纳

发布于 2012-08-10 08:03:18

您得到了一个权限错误。运行Server的帐户在包含数据库文件的文件夹上没有所需的权限。

您需要让运行Server (而不是帐户)的帐户完全控制C:\Program \Microsoft\MSSQL10.SQLEXPRESS\MSSQL\DATA。

票数 23
EN

Database Administration用户

发布于 2012-08-09 22:06:47

基于我们的评论线程,听起来你可能在安装过程中有点偏侧了。安装程序允许您选择默认的数据目录,并为您指定的服务帐户设置该目录的适当权限。

在您的CREATE DATABASE语句中,您指定了一个位置,但该位置是否是原始设置中指定的位置?服务帐户改变了吗?

测试它的一种方法是只运行一个泛型

代码语言:javascript
复制
CREATE DATABASE [test1]; 
GO

如果您得到相同的错误,那么可能服务帐户已经更改,或者NTFS权限的某些内容已经更改。

解析路径(也基于注释字符串)是确认正在运行Server的服务在您指定的路径上具有R/W权限。为此,请执行以下操作:

从服务列表中开始->Run->services.msc->scroll,直到您找到Server>右击->属性->登录选项卡

现在去确保该帐户对该目录有适当的权限来执行它需要做的事情。

票数 7
EN

Database Administration用户

发布于 2012-08-09 20:23:32

似乎在提供的路径中有不正确的空格数,所以它不是匹配的文件夹树。

Sql server不会创建不存在的路径。

编辑:

你最初的帖子是:

代码语言:javascript
复制
...\Microsoft SQL         Server\...
...\Microsoft SQL     Server\...

我猜这不是现存的路径,当它们被冒号所占据时,有多大的空间是相关的。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/22250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档