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 ディレクトリに正しい権限を設定するにはどうすればよいですか?