MS SQL 서버의 인증모드, 즉 어떠한 방법으로 로그인 계정과 패스워드를 확인하여 접근을 허용할지 거부 할지 결정하는 방법에는 다음과 같이 두가지가 있습니다. o Windows 인증 모드 o 혼합 인증 모드 이번 강좌에서는 이 두 인증 방법에 대하여 자세히 살펴보도록 하겠습니다. 1. 인증 모드의 설정 EM(Enterprise Manager)에서 설정하고자 하는 MS SQL 서버를 선택하고 마우스 오른쪽 버튼을 눌러 표시되는 단축 메뉴에서 [등록정보]글 선택하시면 아래 [그림 1]과 같은 SQL Server 속성 화면이 표시됩니다. 인증 모드의 설정은 [보안] 탭을 선택하시어 진행하시면 됩니다. [그림 1]
[그림 1]의 빨간색 박스안을 보면 다음의 두가지 중에서 하나를 선택 할 수 있습니다. o SQL Server 및 Windows o Windows만 'SQL Server 및 Windows'가 혼합 인증 모드로 설정하는 것이고, 'Windows만'이 Windows 인증 모드로 설정하는 것입니다. [그림 1]에서 보면 FUTURE라는 이름의 MS SQL 서버의 인증 모드는 'Windows 인증 모드' 임을 알 수 있습니다. 그럼 과연 위 두가지 인증 모드의 차이점은 무엇인지 궁금해 지네요. 자, 이 두가지 인증 모드의 차이점을 살펴보도록 하겠습니다. 2. Windows 인증 모드 Windows 인증 모드는 MS SQL 서버에서 별도의 계정과 암호를 관리하는것이 아니고 사용자가 Windows 네트워크에 로그인한 정보를 그래도 이용하는 인증 방법입니다. 즉, 계정 관리를 OS에 맞긴다는 것입니다. 여기서 한가지 주의해야할 사항이 있습니다. 만일 10개의 Windows 계정이 있다고 해서 이 계정들이 MS SQL 서버에 접근 할 수 있는 것은 아닙니다. MS SQL 서버에 어떠한 Windows 계정들에게 접근을 허용할 지 설정을 해주어야 합니다. 즉, MS SQL 서버의 로그인 계정에 접근을 허용할 Windows 계정을 등록해 부어야 합니다. 이때 패스워드는 지정을 하지 않습니다. 왜냐하면 실질적인 계정 관리를 OS(Windows NT 또는 WIndows 2000 서버)에서 하기 때문입니다. 1) Windows 계정을 로그인 계정으로 등록하기 아래 [그림 2]는 FUTURE 서버의 Windows 사용자 계정정보를 [컴퓨터 관리]에서 보고 있는 모습입니다. 이 그림에서 보면 Administrator 계정과 jangrae 계정을 볼 수 있습니다. [그림 2]
아래 [그림 3]은 FUTURE 서버에 설치된 MS SQL서버의 로그인 정보를 보고 있는 모습니다. [그림 3]
위 [그림 2]와 [그림 3]을 보면 Administrator 계정이 MS SQL 서버에 로그인 하도록 등록이 된 것을 할 수 있습니다. 즉 사용자가 FUTURE 서버에 Administrator로 로그인을 했다면 이 사용자는 MS SQL 서버에도 접근 할 수 있다는 것입니다. 확인해 볼까요? 현재 저는 이 강좌를 작성하면서 FUTURE 서버에 Administrator 계정으로 로그인을 한 상태 입니다. 이 상태에서 아래 [그림 4]에서 처럼 QA(Query Analyzer)를 통해 MS SQL 서버에 로그인 을 할 때 Windows 계정을 이용해 로그인을 할 수 있습니다. [그림 4]
아래 [그림 5]의 빨간색 박스 안을 보면 Administrator로 로그인 했음을 알 수 있습니다. [그림 5]
그러나 제가 만일 jangrae 라는 계정을 이용하여 Windows 서버에 로그인 한 후 Windows인증을 이용하여 SQL 서버에 로그인 하는 것은 불가능합니다. 왜냐하면 [그림 3]에서 보듯이 jangrae 계정은 MS SQL 서버의 로그인 계정으로 등록이 되지 않았기 때문입니다. 그럼 jangrae 라는 Windows 계정을 MS SQL 서버의 로그인 계정으로 등록하려번 어떻게 하면 될까요? 위 [그림 3]의 화면처럼 EM에서 [보안] 부분을 확장하시고 [로그인]을 마우스 오른쪽 버튼으로 선택하면 표시되는 단축 메뉴에서 "새 로그인"을 선택하시면 아래 [그림 6]과 같이 로그인 계정을 등록하는 화면이 표시됩니다. [그림 6]
[그림 6]에서 처럼 위 빨간색 박스안의 [...] 버튼을 눌러 등록할 Windows 계정을 선택하거나 정확히 입력 해주시면 됩니다. 그리고 아래 빨간색 박스안에서 로그인을 하면 기본적으로 접속할 데이터베이스와 사용할 언어를 설정해주시면 됩니다. 그리고 [서버 역할] 탭과 [데이터베이스 엑세스] 탭을 눌러 적절한 권한과 퍼미션을 설정해주시면 됩니다. 권한과 퍼미션에 대해서는 나중에 다루도록 하겠습니다. "이제부터 Windows 계정 jangrae에서 SQL 서버에 접속할 권한을 허용하노라!' 가 된겁니다. 아래 [그림 7]은 jangrae 라는 Windows 계정이 MS SQL 서버 로그인 계정으로 등록된 결과를 보여줍니다. [그림 7]
2) Windows 인증모드를 사용하면 sa도 접근이 거부된다. 그런데... 아래 [그림 8]처럼 sa 계정을 통해 QA를 이용하여 SQL 서버에 접속을 시도했습니다. [그림 8]
그랬더니 다음 [그림 9]와 같은 에러 창이 떴습니다. [그림 9]
그 이유는 현재 FUTURE라는 이름의 MS SQL 서버는Windows 인증만을 사용하도록 [그림 1]에서 처럼 설정되었기 때문에 Windows 계정이 아닌 sa 라는 MS SQL 자체 계정을 이용해서는 SQL 서버에 로그인 할 수 없기 때문입니다. 분명 sa 계정은 [그림 2]에 나타나지 않았기 때문에 Windows 계정이 아닙니다. 이렇듯 Windows 인증 모드로 설정하게 되면 가장 강력한 권한을 갖는 sa 계정도 SQL 서버에 로그인 할 수 없게 됩니다. 그렇다면 sa 로 로그인 할 수 없다면 어떤 계정을 이용해서 SQL 서버를 관리 할 수 있을까요? 답은 "Administrator와 같은 Windows 계정에 System Admin 권한을 주어 관리한다" 입니다. MS SQL 서버를 설치하게 되면 Administrator 계정에는 자동으로 System Admin 권한이 주어집니다. 3. 혼합 인증 모드 혼합 인증 모드는 앞에서 살펴 본 Windows 인증과 함께 MS SQL 서버의 자체 계정을 이용한 로그인도 허용을 하는 인증 방법 입니다. 즉, 바로 조금전에 sa 계정을 이용해서 로그인이 가능해지는 것입니다. 이를 위해서는 [그림 1]에서 "SQL Server 및 Windows"를 선택하셔야 합니다. 1) MS SQL 자체 계정을 로그인 계정으로 등록하기 MS SQL 자체 로그인 계정을 등록하는 방법은 패스워드를 입력하는것 외에는 Windows 계정 등록하는 방법과 동일합니다. 아래 [그림 10]는 MS SQL 서버 자체 로그인 계정으로서 user01 을 동록하는 모습입니다. [그림 10]
위 [그림 10]에서 [확인] 버튼을 누르면 패스워드를 다시한번 확인하는 대화탕이 표시됩니다. 2) 혼합 인증을 통한 SQL 서버 연결 이제 user01 이라는 계정은 MS SQL 서버에 의해서 자체적으로 관리되는 로그인 계정입니다. 그리고 사용자가 user01 계정을 이용해서 MS SQL 서버에 접속 할 때는 계정과 함께 패스워드를 입력을 해야 합니다. 아래 [그림 11]은 user01을 이용해서 QA를 이용해 SQL 서버에 접속하는 모습을 보여줍니다. [그림 11]
Windows 계정을 이용해 로그인 할 때는 패스워드를 입력하지 않음을 [그림 4]에서 보았습니다. 4. EM(Enterprise Manager)에서 SQL 서버를 등록 할 때 EM에 SQL 서버를 등록을 하는 과정에서 다음 [그림 12]와같은 에러가 뜬다고 질문 하시는 분들이 많이 있습니다. [그림 12]
sa 계정의 패스워드가 틀려서 위와 같은 에러가 날까요? 그렇지 않습니다. 만일 sa 계정의 패스워드가 틀린 경우라는 서버를 등록 할 때 다음 [그림 13]과 같은 에러창이 뜹니다. [그림 13]
분명 [그림 12]와 [그림 13]의 에러메세지는 다릅니다. [그림 13]에는 "이유:트러스트된 SQL Server 연결과 관련되지 않았습니다." 라는 부분이 없습니다. 그렇다면 왜 일까요? 이유는 SQL 서버의 인증 방법이 Windows 인증으로 설정된 상태에서 SQL 서버 자체 계정인 sa 계정을 이용해서 EM에 SQL 서버를 등록하려고 했기 때문입니다. [그림 12] 처럼 에러 메세지에 "트러스트된 SQL Server 연결...." 와 같은 내용이 포함 된 경우라면 SQL 서버의 인증 방법을 혼합 인증으로 바꿈으로 해서 문제를 해결 할 수 있습니다. 앞의 [그림 8]과 [그림 9]에서 발생한 에러와 원인이 같음을 알 수 있습니다. 5. 정리 이번 강좌의 내용에서 기억할 사항은 SQL 서버의 인증 방법에는 Windows 인증 모드와 홈합 인증 모드 두가지가 있으며, Windows 인증 모드를 사용하게 되면 sa 와 같은 SQL 서버 자체 계정을 가지고는 SQL 서버에 로그인 할 수 없다는 것입니다. 되도록이면 Windows 인증 모드를 사용하시는것이 보안에 좋습니다. 그런데 굳이 혼합 인증 모드를 두는 이유는 WIndows 계정 관리가 불가능한 Windows 98 등과 같은 OS에서 SQL 서버가 운영이 되는 경우, 또는 인터넷을 통해 임의의 사용자들이 SQL 서버에 접속 하는 경우 Windows 인증 모드를 사용 할 수 없기 때문입니다. 로그인 인증은 사용자가 SQL 서버에 접속하는 과정일 뿐이지 데이터베이스를 사용할 수 있는 것과는 다릅니다. 실제 데이터베이스를 사용하기 위해서는 인증된 로그인 계정이 해당 데이터베이스 사용자로 등록이 되어야 합니다. 우리가 비자를 가지고 미국에 입국 했다고 해서 미국방성 또는 백악관을 마음대로 들어 갈 수 없는것과 같은 이유 입니다. 또다른 허가가 필요한 것입니다. |