SQL Server를 설치할 때 안전 모드에는 두 가지 옵션이 있습니다. 차이점은 어떤 소프트웨어가 인증 프로세스를 수행하는지입니다. 인증은 SQL Server에 연결하는 사용자의 ID를 확인하는 프로세스입니다. 인증이 수행되면 SQL Server는 사용자에게 데이터베이스와 같은 요청된 리소스에 연결할 수 있는 권한이 있는지 확인할 수 있습니다. 사용자에게 데이터베이스에 연결할 수 있는 권한이 있으면 SQL Server는 연결 요청이 성공하도록 허용하고, 그렇지 않으면 연결이 실패합니다. 사용자 권한을 확인하는 이 프로세스를 승인이라고도 합니다.
· Windows 인증(신뢰할 수 있는 인증 또는 통합 보안이라고도 함)은 연결을 요청하는 Windows 사용자의 ID를 사용하여 데이터베이스에 대한 인증을 수행합니다. 이 경우 연결 문자열은 명시적인 사용자 이름과 암호를 제공할 필요가 없습니다. ASP.NET은 "ASPNET"(또는 IIS 6.0의 "네트워크 서비스")이라는 로컬 사용자로 실행되므로 Windows 인증을 사용할 때 SQL은 이 사용자에게 데이터베이스 사용 권한이 있는지 확인합니다. 이 시점에서 모든 ASP.NET 응용 프로그램은 동일한 사용자로 실행되므로 안전 모드에서는 해당 응용 프로그램을 동일하게 처리합니다. 별도의 ASP.NET 프로세스(각 응용 프로그램을 실행하는 별도의 사용자)에서 각 응용 프로그램을 실행하거나 연결을 요청하는 브라우저 클라이언트의 Windows 사용자 ID를 가장하는 것이 가능하지만 이러한 작업은 이 책의 범위를 벗어납니다. . 그러나 클라이언트 가장은 웹 응용 프로그램에서 Windows 인증을 사용하는 가장 일반적인 방법입니다.
· SQL 인증은 운영 체제와 관련 없이 SQL Server 내에 구성된 사용자에 대해 명시적으로 제공된 사용자 이름과 암호를 확인합니다. 이 경우 ASP.NET 프로세스에서 실행되는 각 응용 프로그램은 별도의 인증서를 사용하여 데이터베이스에 연결할 수 있으므로 응용 프로그램을 합리적으로 격리할 수 있습니다(응용 프로그램 A는 B의 사용자 이름과 비밀번호가 없으면 데이터베이스에 연결할 수 없습니다). . B의 데이터베이스에 연결할 수 없습니다. 이는 특히 공유 호스팅의 경우 배포된 웹 응용 프로그램에 사용되는 가장 일반적인 인증 모드입니다. 작은 단점은 애플리케이션이 연결에 사용된 사용자 계정의 비밀번호를 유지해야 하며, 악의적인 사용자가 이 비밀번호를 획득할 경우 데이터베이스의 보안이 손상된다는 것입니다. 그러나 이 책의 뒷부분에서 볼 수 있듯이 ASP.NET은 SQL 인증 암호를 Web.config 파일에 암호화된 형식으로 저장하는 안전한 방법을 제공하므로 암호를 얻을 위험이 줄어듭니다.
· 혼합 모드는 Windows 인증과 SQL 인증을 모두 허용하는 SQL Server 구성입니다.
SQL Server 또는 SSE를 설치할 때 인증 모드를 선택해야 합니다. SQL Server에는 보안 단계 중에 선택하는 데 도움이 되는 마법사가 있지만 SSE에서는 기본 선택이 Windows 인증입니다. SQL 인증을 설치하려면 이를 명시적으로 구성해야 합니다. 이 문서에서는 Windows 인증을 사용합니다.
SQL Server 또는 SSE를 설치한 경우 RegEdit를 열어 지정된 인증 모드를 볼 수 있으며(물론 먼저 백업해야 함) HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server를 찾아 LoginMode를 검색할 수 있습니다. 값이 1인 등록 하위 키는 Windows 인증을 나타내고, 값 2는 혼합 인증 모드를 나타냅니다.
표 3-1에는 이러한 모드 간의 차이점이 요약되어 있습니다.
표 3-1
Windows 인증 | SQL 인증 | ||
대체 가능 이름 | 신뢰할 수 있는 인증 통합보안 | 아니요, 하지만 혼합 모드 인증에서는 Windows 또는 SQL 인증을 사용할 수 있습니다. | |
인터넷 | 사용자 | 및 | |
인증 | 프로세스 | 목록 | |
기본 설치 | 에는 | 설치 | |
연결 문자열 | Trusted_connection=true를 | ||
=참 | 사용자=사용자 이름; 비밀번호=암호 | ||
ASP.NET 웹 응용 프로그램 사용자 | ASP.NET 프로세스, ASPNET(IIS 5.x) 또는 네트워크 서비스(IIS 6) | SQL 사용자는 | |
사용자의 SQL 이벤트 및 Windows 활동 추적을 제어할 수 있다는 | 이점 | 이 있습니다 | .운영 체제와 독립적으로 새 계정을 만들지 않고 호스트 시스템에 배포됩니다. 호스팅된 인트라넷 사이트에는 보통 수준의 기술만 필요합니다. 애플리케이션이 서로 다른 인증서를 사용하여 각 데이터베이스에 연결할 수 있는 보다 유연한 방법을 제공합니다. |
단점 | 웹 애플리케이션에 Windows 인증서를 제공하면 OS에서 권한 범위를 너무 크게 설정할 수 있습니다. | 비밀번호는 웹 애플리케이션에 저장됩니다(이는 웹 애플리케이션에 저장되지 않음). Windows 인증의 경우). 암호가 Web.config 파일에 저장되고 암호화되었는지 확인하세요. sa 인증서를 사용하여 웹 애플리케이션에 대한 낮은 수준의 작업을 허용합니다. 항상 ASP.NET 웹 애플리케이션에 대한 새 인증서를 만들고 필요한 권한만 부여하세요. |