SQL integrated security using computer name instead of user name

sql server login failed for user integrated security
integrated security=false
application pool identity sql server integrated security
login failed for user 'domainusername
sql server authentication
login failed for user
login failed for user in web application
sql server connection string windows authentication

I am trying to an SQL Express instance on the same network, authenticating with my domain user. It works just fine with Windows Authentication in SSMS. I verified that I can use the MyDB database, including editing tables.

However, when I try the following connection string:

Server=ipaddress\SQLExpress; Database=MyDB; Integrated Security=SSPI;

I get back an error:

Cannot open database "MyDB" requested by the login. The login failed. Login failed for user 'ROMANIA\MONSTER2$'

The problem is that MONSTER2 is the name of my computer, not my username. (ROMANIA is the domain.) What am I doing wrong?

[Edit] I forgot something that might be relevant: I am trying to open the connection from a webservice running on my computer.

Your web service is running under the NT AUTHORITY\Network Service security context. This will cause the process to use the host's machine account when accessing network resources in the domain.

You'll have to configure the web service to run with your domain identity.

If you're hosting your web service in IIS, you can do this through impersonation. Here's an example:

<configuration>
    <system.web>
        <identity
            impersonate="true"
            userName="ROMANIA\username" 
            password="********" />
    </system.web>
</configuration>

Login failed for user '<DOMAIN>\<COMPUTER>$' - MSDN, Why not using username defined in the machine.config? login privileges to the account "domain\machinename$” in the remote SQL Server. and PCName$ the name of a computer ( where is installed the SQL Server or of  The point is that whenever you use NT AUTHORITY\NETWORK SERVICE as your application pool user, the system translates this in the network to DOMAIN\MachineName$. What we do is to use the user name of the developer to connect to the machine by setting the username of the application pool to the developer's name.

That is because your web server is not set up to use the identity of the person using the service, but rather the identity of the computer it is running on.

Check if your web.config for the web service contains: <authentication mode="Windows" />

Authentication in SQL Server, User name and password pairs are maintained within SQL Server. Important. We recommend using Windows authentication wherever possible. and encrypted passwords are passed across the network, which makes them less secure. The application and the database are on the same computer. When the bcp utility is connecting to SQL Server with a trusted connection using integrated security, use the -T option (trusted connection) instead of the user name and password combination. When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not

I needed to do both in my situation:

<authentication mode="Windows" />
    <authorization>
        <deny users="?" />
    </authorization>
<identity impersonate="true" />

Login failed for user 'DOMAIN\MACHINENAME$', using SQL Server 2012, the web.config is set up to use integrated http://​serverfault.com/questions/66660/what-does-domain-name-computer-name-​mean Catalog=your_db_schema;Integrated Security=False;User  Server=ipaddress\SQLExpress; Database=MyDB; Integrated Security=SSPI; I get back an error: Cannot open database "MyDB" requested by the login. The login failed. Login failed for user 'ROMANIA\MONSTER2$' The problem is that MONSTER2 is the name of my computer, not my username. (ROMANIA is the domain.) What am I doing wrong?

I had the same problem, and for a similar reason. (blush).

Even though I correctly set up my application pool to use the service account credentials instead of the LocalService/NetworkService etc, for some reason the Application itself was not using that application pool. It was set to DefaultAppPool. Very easy to miss, if one continues to assume that IIS was set up correctly.

AppPoolIdentity local SQL Server Login : The Official Microsoft IIS , IIS is passing machine credentials to the local installation of SQL My next step is to get this site to use Windows Authentication instead of username/password. I noticed today that this application is not using connection strings in or "​Integrated Security=yes", but it still passes the machine credentials. I would say all your logins were of the form of 'computername\username' and because the computername is now different the logins don't not work anymore. If you don't have SQL-Authentication of the 'sa' password, you need to start SQL-Server in single-user mode in which any local administrator has access and you can fix your broken logins.

SQL Server Login failed for user DOMAIN\COMPUTER$, Microsoft SQL Server Login failed for user DOMAIN\COMPUTER$. Report Server or Standalone Report Designer cannot connect to Microsoft SQL Server storage when using integrated security. Set the login name in the General page. The connection string uses SQL credentials as so (in both web app and class library): <add name="Namespace.My.MySettings.ConnectionStringProduction" connectionString="Data Source= (SQL Test Box);Initial Catalog= (db name);Persist Security Info=True;User ID=ID;Password=Password" providerName="System.Data.SqlClient" />.

Beginning ASP.NET E-Commerce in C#: From Novice to Professional, The class used to connect to SQL Server is SqlConnection. ConnectionString = "Server=(local)\SqlExpress; " + "User ID=balloonshop; Password=ecommerce;" + You can use your computer name instead of (local). in the code snippet) or by using Windows Authentication (also named Windows Integrated Security). Change Application Pool Identity to use custom account and have it run under a network service account. Bear in mind, the service account also needs to have access in SQL Server. Create an SQL Server login and make sure the connectionStrings in the application’s web.config use User Id and Password instead of using integrated security.

How to Resolve Login failed for user 'DOMAIN\PCNAME$', Grant DOMAIN\SERVERNAME$ user id read and write to the SQL Server database. The key is just to type the DOMAIN\SERVERNAME$ in the Login name: text box use User Id and Password instead of using integrated security. Is using integrated security (SSPI) for accessing SQL Server better for  If you specify both Integrated Security=true as well as a user name and password, the user name and password will be ignored and Windows authentication will be used. Connect to a named instance of SQL Server To connect to a named instance of SQL Server, use the server name\instance name syntax. "Data Source=MySqlServer\MSSQL1;"

Comments
  • You need to configure your webservice to run as a named using (rather than local machine, as it appears to be)
  • What an annoying quirk. Thanks for posting this question. Helped me out.
  • Once again, I have the problem of choosing which answer to mark as accepted. I'll pick this one, sorry Raj. I up-voted both answers though.
  • Duh! You are correct. For the record, I had to go to IIS and change the application pool (in advanced settings) to use my identity instead of the default ApplicationPoolIdentity. I'll accept the answer in 9 minutes :)