:이 약의 중복 알고 ASP.NET 및 SQL Server 2008의 "로그인 사용자 'NT AUTHORITY \ IUSR을'실패 '오류 및 LINQ와 System.Data.SqlClient.SqlException에 - 사용자 이름'실패 로그인 외부 프로젝트 / 클래스 라이브러리 이지만 내 서버의 다른 응용 프로그램과 비교하여 일부가 합산되지 않으며 그 이유를 모르겠습니다.
사용중인 상자 :
웹 박스
SQL 박스
SQL 테스트 박스
내 응용 프로그램:
LINQ-to-SQL을 사용하는 클래스 라이브러리를 참조하는 ASP.NET 웹 응용 프로그램이 있습니다. 클래스 라이브러리에서 연결 문자열이 올바르게 설정되었습니다. 사용자 'username'-System.Data.SqlClient.SqlException에 대한 로그인 실패에 따라 외부 프로젝트 / 클래스 라이브러리의 LINQ와 함께이 연결 문자열도 웹 응용 프로그램에 추가했습니다.
연결 문자열은 다음과 같이 SQL 자격 증명을 사용합니다 (웹 앱 및 클래스 라이브러리 모두에서).
<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" />
이 연결은 서버 탐색기에 추가하여 작동하는 것으로 확인되었습니다. 이것은 내 .dbml 파일이 사용하는 연결 문자열입니다.
문제 :
다음과 같은 오류가 발생합니다.
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
이제 ASP.NET 및 SQL Server 2008에서 " 'NT AUTHORITY \ IUSR'사용자에 대한 로그인 실패"오류를 참조하면 이것이 실제로 로컬 네트워크 서비스이며 다른 비 도메인 이름을 사용하면 작동하지 않는다고 말합니다.
하지만 SQL Box와 SQL Test Box SQL Management Studio를 모두 확인했고 둘 다 NT AUTHORITY/NETWORK SERVICE
보안-> 로그인, 데이터베이스 수준에서 보안-> 사용자에 나열되지 않고 데이터베이스 수준 보안에 있기 때문에 혼란 스럽 습니다. -> 사용자 사용자가 연결 문자열에 표시됩니다.
웹 서버의 NTFS 수준에서 권한은 NETWORK SERVICE가 모든 권한을 갖습니다.
내가 혼란스러워하는 이유는 웹 서버에 다른 많은 웹 응용 프로그램이 있고 SQL Box와 SQL Test Box 모두에서 데이터베이스를 참조하고 모두 작동하기 때문입니다. 그러나 클래스 라이브러리를 사용하는 것 외에는 현재 응용 프로그램과 차이점을 찾을 수 없습니다. 그게 중요할까요? NTFS 권한 확인, 서버 및 데이터베이스 수준에서 보안 로그인 설정, 연결 문자열 및 연결 방법 (SQL Server 자격 증명), IIS 응용 프로그램 풀 및 기타 폴더 옵션은 모두 동일합니다.
내 SQL 상자 중 하나의 권한에 machinename $을 추가하지 않고 이러한 응용 프로그램이 작동하는 이유는 무엇입니까? 그러나 그것이 하나의 링크 가이 문제를 해결하기 위해 나에게 지시하는 것입니다.