title: How to give MSSQL$SQL2016 permissions to write to a folder
body: <p>Morning,</p>
  
  <p>I have hit a brick wall and I need pointing in the right direction.
  What I am trying to do is give my SQL Server instance permission to create the MDB / LDB files in a directory on a new hard drive I have installed on my local machine, without using Everyone.</p>
  
  <p>When I try to create a new database in the folder (through management studio) I get the following error:</p>
  
  <pre><code>===================================
  
  Create failed for Database 'TestDatabase1'.  (Microsoft.SqlServer.Smo)
  
  ------------------------------
  For help, click: http://go.microsoft.com /fwlink?ProdName=Microsoft+SQL+Server&amp;ProdVer=13.0.16106.4+((SSMS_Rel_16_5).170125-2137)&amp;EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&amp;EvtID=Create+Database&amp;LinkId=20476
  
  ------------------------------
  Program Location:
  
     at Microsoft.SqlServer.Management.Smo.SqlSmoObject.CreateImpl()
     at Microsoft.SqlServer.Management.SqlManagerUI.CreateDatabaseData.DatabasePrototype.ApplyChanges(Control marshallingControl)
     at Microsoft.SqlServer.Management.SqlManagerUI.CreateDatabase.DoPreProcessExecution(RunType runType, ExecutionMode&amp; executionResult)
     at Microsoft.SqlServer.Management.SqlMgmt.SqlMgmtTreeViewControl.DoPreProcessExecutionAndRunViews(RunType runType)
     at Microsoft.SqlServer.Management.SqlMgmt.SqlMgmtTreeViewControl.ExecuteForSql(PreProcessExecutionInfo executionInfo, ExecutionMode&amp; executionResult)
     at Microsoft.SqlServer.Management.SqlMgmt.SqlMgmtTreeViewControl.Microsoft.SqlServer.Management.SqlMgmt.IExecutionAwareSqlControlCollection.PreProcessExecution(PreProcessExecutionInfo executionInfo, ExecutionMode&amp; executionResult)
     at Microsoft.SqlServer.Management.SqlMgmt.ViewSwitcherControlsManager.RunNow(RunType runType, Object sender)
  
  ===================================
  
  An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
  
  ------------------------------
  Program Location:
  
     at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
     at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
     at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
     at Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext, Boolean executeForAlter)
     at Microsoft.SqlServer.Management.Smo.SqlSmoObject.CreateImplFinish(StringCollection createQuery, ScriptingPreferences sp)
     at Microsoft.SqlServer.Management.Smo.SqlSmoObject.CreateImpl()
  
  ===================================
  
  CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file 'D:\MSSQL\Data\TestDatabase1.mdf'.
  CREATE DATABASE failed. Some file names listed could not be created. Check related errors. (.Net SqlClient Data Provider)
  
  ------------------------------
  For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&amp;ProdVer=13.00.4224&amp;EvtSrc=MSSQLServer&amp;EvtID=5123&amp;LinkId=20476
  
  ------------------------------
  Server Name: my_machine\SQL2016
  Error Number: 5123
  Severity: 16
  State: 1
  Line Number: 1
  
  
  ------------------------------
  Program Location:
  
     at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
     at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
  </code></pre>
  
  <p>The SQL Server instance  is logging on using "NT Service\MSSQL$2016".
  I have checked the original data folder and MSSQL$2016 has permissions to read and write.</p>
  
  <p>I've had a look at these posts:</p>
  
  <p><a href="https://blog.sqlauthority.com/2018/08/25/sql-server-fix-create-file-encountered-operating-system-error-5-access-is-denied/" rel="noreferrer">https://blog.sqlauthority.com/2018/08/25/sql-server-fix-create-file-encountered-operating-system-error-5-access-is-denied/</a></p>
  
  <p><a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-file-system-permissions-for-database-engine-access?view=sql-server-2017" rel="noreferrer">https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-file-system-permissions-for-database-engine-access?view=sql-server-2017</a></p>
  
  <p><a href="https://serverfault.com/questions/507496/sql-server-2012-with-account-nt-service-mssqlserver-access-is-denied-in-domain">https://serverfault.com/questions/507496/sql-server-2012-with-account-nt-service-mssqlserver-access-is-denied-in-domain</a></p>
  
  <p><a href="http://documentation.sqlserverbooster.com/en/1_1_2/SQLServerBoosterDocumentation.html?AddingreadwritepermissionstoNTSe.html" rel="noreferrer">http://documentation.sqlserverbooster.com/en/1_1_2/SQLServerBoosterDocumentation.html?AddingreadwritepermissionstoNTSe.html</a></p>
  
  <p><a href="https://dba.stackexchange.com/questions/70069/how-do-i-give-file-system-access-to-sql-servers-sqlserveragent-virtual-account">https://dba.stackexchange.com/questions/70069/how-do-i-give-file-system-access-to-sql-servers-sqlserveragent-virtual-account</a></p>
  
  <p>I have also tried adding the following to the folder by right clicking on the folder->properties->Security, none of which have worked</p>
  
  <pre><code>NT Service\MSSQL$SQL2016
  [NT Service\MSSQL$SQL2016]
  [NT Service]\MSSQL$SQL2016
  [NT Service]\[MSSQL$SQL2016]
  MSSQL$SQL2016
  </code></pre>
  
  <p>When I click on the Check Names it cannot find it.</p>
  
  <p>If it makes any difference this is on a Windows 10 PC on a domain.</p>
  
  <p>I have missed something obvious but I am not sure what it is.  If you could point me at a document, it would be greatly appreciated.</p>