SQLTeam.com | Weblogs | Forums

Login failed for user 'DOM\SQL1$'. Reason: Could not find a login matching the name provided

Hello,
Looking help for login error.
I have configured the brand new server for dedicated ETL process with the service account as Microsoft virtual account NT Service\MSSQLSERVER and Sql AGENT ACCOUNT is NT SERVICE\SQLSERVERAGENT.

We have created SSIS package on ETL server and which is executing and inserting data into DW1 Server.

When i am running the SSIS package manually then i am getting following error:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Could not find a login matching the name provided(in DW server Error log)

Then I have created Agent job and made owner as 'DOM\ETL01' then i am getting following error:

Login failed for user 'DOM\ETL01$'. Reason: Could not find a login matching the name provided (in DW server Error log)

I also changed Job owner as 'SA', still same error

I have also tried to change the Sql service account from 'NT Service\MSSQLSERVER' to 'DOM\ETL01' but error remaining the same. I have restarted the sql services (MS Sql Server, Sql Agent and SSIS) after changing the service account.

In both the servers, all these accounts (DOM\ETL01, NT Service\MSSQLSERVER, NT SERVICE\SQLSERVERAGENT)

having Sysadmin role. I have also added Permission into Database and Schema level.

I have also added SSIS_Admin Role for these accounts into ETL server .

Thanks for your help!

When I see a $ login, that is usually when it is trying to login with the computer name instead of the login specified. I have seen this in IIS, not with SQL agent. SQL Agent uses the login that started the SQL Agent service as the login. Is there a config file what you are running the SSIS package with or using SSISDB? Wondering what the connection string looks like.

Thanks Mike for your response.
Right 'Domain\computerName$ account is a root account and i believe that when the server build that time it's getting created but i don't understand that how it's using.
WE don't have config file as we are using SSISDB.
We have Sql Service account is a Microsoft virtual account.
We are trying to run through Sql Agent and also tried to run through manually from SSISDB - Catalog.
We have set up the environment parameters.
When i am running the SSIS package manually then i am getting following error:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Could not find a login matching the name provided(in DW server Error log)

This is probably due to a linked server being accessed from the code. If so - you need to setup and configure Kerberos or change the linked server connection.

I see no reason to use a linked server from SSIS - SSIS should be able to connect and extract data directly from the source system instead of pulling that data across a linked server.

Thanks Jeff.
We haven't configured any Linked server yet.
And Both the servers are in same domain - DOM1 so probably don't need it

If you are running a process in the context of the user NT SERVICE\SQLSERVERAGENT - and then get an error about not being able to login with the account/user NT AUTHORITY\ANONYMOUS LOGIN - then you are running into a double-hop issue.

The primary connection is not able to pass the credentials through the secondary connection so it is attempting to make the connection with an anonymous account.

Somewhere you have a secondary connection being made - which is why this is failing.

You stated that you get this error when running this manually. How exactly are you running this manually? Are you opening SSMS and trying to run it from the Catalog? Are you trying to run this in SSDT - or are you trying to run it by double-clicking on the dtsx package?

How many connections are configured in the package - and how is each connection configured?

This is NOT a permissions issue...so setting these accounts up with sysadmin isn't going to help.

Thank Jeff. I got the point you are talking about "primary connection is not able to pass the credentials through the secondary connection so it is attempting to make the connection with an anonymous account."
When i am running the SSIS package manually using SSMS through SSIS server ==> Integration Services Catalogs => SSISDB => Folder => Projects => PAckages, then i am getting following error:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Could not find a login matching the name provided(in DW server Error log)
I have 2 connection manager one for Oracle and another OLEDB Connection Manager, OLEDB is used for connection from SSIS server to Destination server

I hope i answered your question right, please let me know what else i can check
Appreciate your help and valuable guidance!

That is your problem - you are attempting to run the package from your workstation. That creates the first connection...then the package is attempting to run and it creates a second connection.

The second connection cannot be made because you do not have Kerberos setup and configured. If you had Kerberos - a certificate would be generated on your workstation that would then be passed to the second connection...which would then pass that certificate which would identify your account to be used.

I am assuming that the Oracle connection is setup with a username/password and not windows authentication. The OLEDB Connection Manager isn't connecting from the SSIS server to the Destination server - it is a connection to the Destination server only. If that one is setup to use windows authentication - then it attempts to create a connection from the device/system where the package is running to the destination.

If the package is setup in an agent job - and that package runs on ServerA - and the destination server is ServerB, then a connection will be made from ServerA to ServerB using the connection method specified (windows authentication/sql authentication).

The important piece here is the user context running the package - and where the package is being executed. Based on your information so far...I have to guess, but it sounds like you created an agent job on your local instance that references an SSIS package on the SSIS server. In that scenario - it will fail because of a double-hop issue...

To fix this - you need the following:

  1. A proxy account setup and configured for Integration Services on the SSIS server.
  2. An agent job on the SSIS instance of SQL Server - setup to run the SSIS package
  3. Permissions assigned in all systems where that proxy account will be connecting

*** If you do not have SQL Server installed on the SSIS Server - then you must setup Kerberos to allow for the double-hop from the system where the Agent is installed, to the SSIS Server - connecting to the destination server ***

Once Appreciate your valuable information to pin point the issue and as well as for resolution.
Oracle connection - we normally received TNS file and it has Oracle login info.
We have Installed the Sql Server on SSIS server and also configured SSISDB.
When you say running package from my work station, I don't get it that. (Sorry if i misunderstood)
When you open the Server connection through SSMS and in Sql server Agent has different owner then how it using my local work station info?
When i see the connection, it shows Kerberos not NTLM.
I don't see any SPN related error in my any sql server log.
When Package runs from Server A using Sql Agent job and connect to Server B - i have user having SysAdmin role and i also tried to use the same user assigning the proper permissions.
I have Sql Agent job setup on same SSIS server where it's executing the package (Server A) and connecting to insert the data into SERVER - B

If you launch SSMS on your workstation - connect to your SSIS server and navigate to the Integration Services catalog, then right-click a package and execute...that package is NOT run on the server. It is run on your workstation...

I don't know what else to tell you...you have a double-hop issue as evidenced by the error you are getting and the account that is being used to make the 'second' connection. The primary connection is using the user context - and then attempting to pass that user context to the next connection. It cannot pass that connection information and you get an error.

The error is very clear - it is not a permissions issue. Setting accounts with sysadmin rights in SQL Server to 'fix' it won't change anything other than to make your system less secure.

Jeff, Thank you very much For very your cleaver explanation.
You have provided very good insight, appreciate it.
I understand your logic but still i am confused that already we have deployed the package on server then we can run run from anywhere like SSDT or SSMS, how come it's not running on the server?
Would you mine to guide me that SSIS service needs to be running?
If you then it's using SSIS service account (NT Service\MsDtsServer140) or Sql server servide account NT Service\MSSQLServer)?

Actually - the integration services service is not utilized to run SSIS packages. It is only used to manage the packages: https://docs.microsoft.com/en-us/sql/integration-services/service/integration-services-service-ssis-service?view=sql-server-ver15

When you create an agent job - the user context is determined based on the owner of the agent job. If the owner of the agent job is a member of the sysadmin server role - the user context will be the SQL Server Agent Service account. When the owner of the agent job is not a member of the sysadmin role - the user context will be that user.

To insure the proper user context - you need to create a proxy account in SQL Server and grant that proxy account to SSIS Package Execution in the proxies folder under SQL Server Agent. Then - you can run the package as that proxy account. This insures that job step runs in the appropriate user context.

You have the same issue on the server - as you do on your workstation. You have a double-hop issue that is causing the error. Somewhere in your setup you are making a connection to a server - which is then attempting to make a connection to another server using windows authentication.

Thanks Jeff for another good information.
Appreciate your very good help!
When i am running the SSIS package from SSMS, I have owner who is part of the SysAdmin Role.
Even though SQL Server Agent Service account is also part of the SysAdmin Role.
I may be look into Proxy account as i never setup.