1

저는 최근에 클라이언트 용 ASP.NET 프로젝트에서 작업하고 있습니다. 프로젝트는 이전 Oracle 데이터베이스에서 새 SQL Server 2008 데이터베이스로 데이터베이스를 마이그레이션하는 것이 었습니다. 마이그레이션은 순조롭게 진행되었으며 대부분의 절차는 오래 걸리지 않았습니다. 그러나 이제 우리는 SQL Server 인증을 사용하고 사용자 이름과 암호를 사용하여 .NET 코드에서 데이터베이스에 액세스하여 지금까지 문제가 발생했습니다..NET 인증 문제

<add key="DatabaseConnectionString" value="Data Source=DATASOURCE;Initial Catalog=DATABASE;User Id=USERID;Password=PASSWORD;"/> 

이 내가 말하는 클라이언트에서 이메일 받았다있다 그러나 최근에 잘 작동했다 :

을 "대신 데이터베이스에 액세스하기 위해 .NET 응용 프로그램에 대한 로컬 SQL 계정을 사용하여 다음 연결 문자열을 보여줍니다 Active Directory 계정을 사용할 수 있습니까? web.config에서는 <username>이 아닌 <domain name>/<username>으로 표시됩니다. "

내가 뭘에 대한 혼란 스러워요 것은 :

내가 Windows 인증으로 SQL 서버 내에서 인증 모드를 변경해야합니까? 클라이언트가 <username>에서 <domain>/<username>으로 변경하려고합니까 아니면 반대 방향입니까? web.config의 abouts은 사용자 이름을 변경해야합니까? 연결 고리에 있습니까?

위의 사항에 대한 도움이 될 것입니다.

<identity impersonate="true"/> 
<authentication mode="Windows"/> 

답변

2

내가 할 :

이의 Web.config의 인증 섹션입니다 ...

또한 당신이 알 필요가 확실하지 메신저하지만 난 그것을 어떻게해서든지 추가 SQL Server의 인증 모드를 Windows 인증으로 변경해야합니까?

아니요, Windows 인증이 항상 사용 가능하기 때문입니다. 그러나 SQL Server 인증을 사용하지 않도록 설정하는 것이 좋습니다.

클라이언트는 "도메인/사용자 이름"

호에 "이름"에서 변경을 의미 하는가 이것은뿐만 아니라 도메인 이름을 추가하는 방법에 대한. 활성 디렉토리에 대해 사용자를 인증하고 SQL 연결에 위임을 사용해야합니다. Windows 계정을 사용하려면 특정 계정으로 Sql Server에 액세스할지 또는 로그인 한 사용자 계정에 액세스 할지를 결정해야합니다. 첫 번째 방법은 거의 항상 더 좋습니다. 이를 위해서는 연결 문자열에서 사용자 ID와 암호를 삭제하고 "Integrated Security = SSPI"로 바꾸고 응용 프로그램 풀 ID를 활성 디렉토리 사용자 계정으로 설정해야합니다. SQL Server에서는이 계정에 필요한 것을 수행 할 권한을 부여해야합니다. 두 번째 방법은 웹 사이트의 사용자에 대해 Windows 인증이 필요하며 연결에 위임을 사용하는 것입니다. 가장이 그걸로 충분할 지 모르겠습니다.

+0

로그온 프로세스가 응용 프로그램 내에서 작동하는 방식으로 생각하면 데이터베이스에서 권한을 부여받은 도메인 내에 있으면 사용자가 데이터베이스에 연결할 수 있습니다. 그런 다음 연결되면 사용자 이름 (도메인/사용자 이름)이 사용자 테이블에 있는지 확인합니다. 그들은 액세스 권한이 부여됩니다. –

+0

이미 통합 보안 = SSPI를 추가 했으므로 데이터베이스에 연결할 수 있습니다. 그러나 내 데이터베이스 내에서 스키마 접두사가 있습니다.그래서 내 모든 저장 프로 시저가 스키마 내에 있습니다. .NET 코드가 프로 시저를 호출하려고하면 접두사 스키마가 추가되지 않고 저장 프로 시저를 찾을 수 없습니다. 나는 우리가 기본 스키마를 변경할 수없는 사용자 그룹 (사용자 그룹)을 사용하기 때문에 비 귀찮은 스키마를 변경하면이 문제가 해결된다는 것을 이해합니다. –

+0

통합 보안으로 변경하기 전에 접두사를 프로 시저 호출에 추가 했습니까? –