SQL 서버 로그인 시 localhost는 되고, 127.0.0.1로는 안 되는 문제
localhost는 접속이 잘 되고,

127.0.0.1로 접속을 하면 안 될 수 있습니다.

Test connection failed because of an error in initializing provider. Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication.
왜냐하면, 윈도우 통합 인증("Use Windows NT Integrated security")을 사용했기 때문입니다. "127.0.0.1" IP 주소로 로그인을 하려면 SQL 서버 로그인 인증("Use a specific user name and password") 옵션을 사용해야 합니다.
참고로, .NET에서 코딩할 때는 appsettings.json에 다음과 같이 연결 문자열을 지정하게 될 것입니다.
{
...[생략]...
"ConnectionStrings": {
"BloggingDatabase": "Server=127.0.0.1;Database=Blogging;Trusted_Connection=True;"
}
}
그런 경우 다음과 같은 식으로 예외가 발생합니다.
Microsoft.Data.SqlClient.SqlException
HResult=0x80131904
Message=Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication.
Source=Core Microsoft SqlClient Data Provider
StackTrace:
at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
...[생략]...
at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreated()
at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.EnsureCreated()
at Program.<Main>$(String[] args) in D:\workshop2\JenniferV\docker_sample\DockerNetSamples\razor_60_sample\Program.cs:line 30
This exception was originally thrown at this call stack:
[External Code]
Program.<Main>$(string[]) in Program.cs
따라서, SQL Server 인증을 사용하는 연결 문자열로 바꿔야 합니다.
"ConnectionStrings": {
"BloggingDatabase": "Server=127.0.0.1;Database=Blogging;User Id=netnet2022; Password=...[생략]...;"
}
그런데, 굳이 "localhost" 대신 "127.0.0.1"로 사용해야 할 이유가 있을까요? ^^
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]