使用SQLEXPRWT_x86_ENU.exe安装SQL Server Express 2008 R2后,SQL Server无法创建数据库

时间:2012-09-14 18:59:21

标签: nsis sql-server-2008r2-express

我有一个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目录上设置正确的权限?

1 个答案:

答案 0 :(得分:2)

您可以使用AccessControl plugin

更改ACL