title: Is it possible to get "NT AUTHORITY\NETWORK SERVICE" user independent of language?
body: <p>I have encountered today a problem that I have never faced before.</p>
  
  <p>I have developed an application that uses SQL Server database. That application has a Windows Service that accesses the database.</p>
  
  <p>Since the Windows Service uses Network Service as the user, I need to add that user to the database so that it has access to it.</p>
  
  <p>That task is accomplished automatically by an installer I have also developed.</p>
  
  <p>In that installer, I have this script fragment:</p>
  
  <pre><code>USE [MyDB]
  GO
  
  IF NOT EXISTS(SELECT principal_id FROM sys.database_principals WHERE name = 'NT AUTHORITY\NETWORK SERVICE')
      BEGIN
          /****** Object:  User [NT AUTHORITY\NETWORK SERVICE]    Script Date: 26-10-2018 13:42:57 ******/
          CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA=[dbo]
  
          ALTER ROLE [db_owner] ADD MEMBER [NT AUTHORITY\NETWORK SERVICE]
      END
  </code></pre>
  
  <p>That script works almost always, but today installation.</p>
  
  <p>Today installation was made in a Windows 7 PC which is in Spanish. The installer sent an error telling that "NT AUTHORITY\NETWORK SERVICE" user does not exist.</p>
  
  <p>Looking at the issue, I found that in that PC, that user is called "NT AUTHORITY\Servicio de Red", that is, "NETWORK SERVICE" in Spanish.</p>
  
  <p>That is strange because I have other PC's with Windows 10 in Spanish, but in that O.S., the user is called "NT AUTHORITY\NETWORK SERVICE" too.</p>
  
  <p>To solve the issue in that PC, I had to install SQL Server Management Studio only to assign "NT AUTHORITY\Servicio de Red" user to the database.</p>
  
  <p>Since I don't know the user name beforehand, is it possible to add to SQL a generic user that will work everywhere?</p>