I have a SQL Server 2005 named instance using Windows Authentication with domain groups serving as logins. The domain structures are as follows:
Forest
As mentioned in my question update, changing the service account to be in Domain2 resolved the issue. So what was going on?
The Problem - Explained
From what I can tell (also with help from a Microsoft representative), because the service account was originally a Domain1 user, it could not determine what domain local groups the connecting user is a member of when the user is authenticating via Kerberos. The primary lead that this was a Kerberos issue was when I successfully connected using "Named Pipes" as this uses NTLM authentication.
Overall Solution
To bring it all together, to successfully add users from Domain1 and Domain3 as members of groups in Domain2 so that the groups can be used as SQL Server logins with Windows authentication, here's a list of requirements (or at least strongly encouraged):
Domain2 trusts Domain1 and Domain3Domain2 must be scoped "Domain Local"
Domain1 and Domain3Domain2 user as the service account identity
Domain2 user account.Domain2 service account
Domain2 service account to be trusted for delegation
Domain2 groups and any Domain1 or Domain3 members should be able to connect remotely!Note
As always with any remote network activity, check your firewalls to ensure your SQL Server ports are not blocked. Although the default port is 1433, check to make sure your port is in the clear.
Ok, I met the issue as well in 2017, hard to find any solution, finally, I figure it out only for my case.
My environment,
Forest 1 (Domain1) --- TRUST --- Forest 2(Domain2)
I have a service account in Domain2 trying to log in SQL server in Domain1 by using Windows Authentication.
And, following error message pops up.
Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. (Microsoft SQL Server, Error: 18452)
The solution is simple enough, on domain1, open active directory domains and trusts tool,
Trusts -> outgoing trusts -> properties -> authentication -> change to "Forest-wide authentication"
My problem solved.