I was busy setting up a new VM with SQL Server 2012 with the latest cumulative update (Build: 11.0.2325.0) and all the features enabled for installation. On the end of the installation summary page it show that SQL Server Analysis Services failed. The installation did install the Analysis Service but viewing the SQL Server Services in SQL Server Configuration Manager it show the Analysis Service did not start, that is why the installation show failed.
I went and look into Windows Application Event Viewer for further details and the following error has been logged:
Message-handling subsystem: The message manager for the default locale cannot be found.
The locale will be changed to US English. Message-handling subsystem: The message manager for the default locale cannot be found. The locale will be changed to US English. File system error: The following error occurred during a file operation: Access is denied. . (\\?\E:\Data\CryptKey.bin).
At first I thought there is some server locale issue. As you can see at the end of the message there is an “Access is denied” issue. Which is related to permissions to some resource. To understand why I get this error I need to explain my server setup.
The newly created VM has a C drive and an additional E drive. As you know the C drive is for OS and program files. The E drive is where I put all the SQL Server databases files and folders. On the E drive I created the following directory structure:
For each SQL Server Service I create dedicated accounts:
- SQL Engine Service: sql_eninge_service
- SQL Analysis Service: sql_analysis_service
- SQL Reporting Service: sql_report_serivce
- SQL Agent Service: sql_report_service
You get the picture. Now back to the “Access is denied” error. I had to give the SQL Analysis Service account write access on E:\Data and E:\Logs directory and then the SQL Analysis service started up successfully.
In summary if you create your own service accounts and have your own predefined folder structure you can get permission errors from SQL Server. Always keep your eye on Windows Application Event Viewer to see any SQL Server permission errors and give the right permissions to each service account.