0

Windows 7 に SQL Server Express 2008 R2 のインスタンスを正常にインストールする NSIS インストール スクリプトがありますが、後でインストール スクリプトからデータベースを作成しようとすると、アクセスが拒否されたことを示すエラーが表示されます。私の詳細な手順は次のとおりです。

以下を使用して、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 に答える