0

我有一个 NSIS 安装脚本,它成功地在 Windows 7 上安装了 SQL Server Express 2008 R2 的实例,但是当我后来尝试从安装脚本创建数据库时,我收到一条错误消息,提示访问被拒绝。我的详细步骤如下。

我使用以下命令通过 NSIS 安装程序安装 SQL Server Express:

ExecWait 'SQLEXPRWT_x86_ENU.exe /Q /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS /ROLE=AllFeatures_WithDefaults /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /INSTANCENAME=SQLXXXX /SecurityMode=SQL /SAPWD="xxxxxx" /IndicateProgress'

然后在我的 NSIS 安装程序中,我“尝试”使用以下内容创建数据库:

ExecWait 'sqlcmd -S "computerName\SQLXXXX" -i "$OUTDIR\ASPNETDB_Create.SQL" -o "$OUTDIR\ASPNETDB_Create_Log.txt"'

脚本 ASPNETDB_Create.SQL 在其中的第一个命令处失败,如下所示:

CREATE DATABASE [aspnetdb] ON  PRIMARY 
( NAME = N'aspnetdb', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLXXXX\MSSQL\DATA\aspnetdb.mdf' , SIZE = 411392KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) 
LOG ON ( NAME = N'aspnetdb_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLXXXX\MSSQL\DATA\aspnetdb_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

我收到以下错误:

CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLXXXX\MSSQL\DATA\aspnetdb.mdf'.

似乎问题在于文件夹“C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLXXXX\MSSQL\DATA”没有为用户“NT AUTHORITY\Network Service”设置任何权限。

如果不正确的访问权限确实是我的问题,如何在数据库所在的 DATA 目录上设置正确的权限?

4

1 回答 1

2

您可以使用AccessControl 插件更改 ACL

于 2012-09-14T20:22:45.140 回答