Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리

SQL Server 오류 18456은 서버가 연결 요청을 인증하지 못할 때 발생합니다. 주요 원인으로는 SQL 서버에 대한 관리자 권한 부족, 또는 SQL 서버 설정에서 TCP/IP 프로토콜이 비활성화되어 있는 경우를 들 수 있습니다.

이 문제는 사용자가 SQL 서버(로컬 또는 원격)에 접속을 시도할 때 다양한 상태 코드와 함께 18456 오류가 나타나는 형태로 발생합니다.

Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리

아래의 해결 방법들을 순서대로 시도해 보세요. 그 전에 먼저 서버, 클라이언트 PC, 네트워크에 연결된 컴퓨터를 재시작하면 문제가 해결되는지 확인하는 것이 좋습니다. 또한 사용자 이름과 비밀번호를 직접 정확하게 입력했는지 확인하고(복사-붙여넣기로 인한 오류 방지), 데이터베이스 이름에 오타가 없는지, 구성 파일이 올바르게 업데이트되었는지도 함께 점검하세요.

추가로 계정 잠금 해제(ALTER LOGIN WITH PASSWORD= UNLOCK 쿼리 실행)로 문제가 해결되는지 확인해 보세요. SQL 오류 로그에 에러가 기록되어 있다면 SQL 서버가 외부 공격을 받고 있는 것은 아닌지 반드시 점검해야 합니다. 마지막으로 서버와 클라이언트 PC의 시스템 시간이 올바르게 설정되어 있는지도 확인하세요.

관리자 권한으로 SQL Server 실행 및 서버 UAC 비활성화

SQL 서버에 작업 수행에 필요한 상승된 권한이 없으면 오류 18456이 발생할 수 있습니다. 이 경우 관리자 권한으로 실행하거나 서버에서 UAC(사용자 계정 컨트롤)를 비활성화하면 문제가 해결될 수 있습니다.

관리자 권한으로 SQL Server 열기

  1. Windows 키를 누르고 SQL Server Management Studio를 입력합니다.
  2. SSMS를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  3. UAC 프롬프트가 나타나면 를 클릭한 뒤 오류 18456이 사라졌는지 확인합니다.
  4. 그래도 문제가 지속된다면 서버 머신에서 UAC를 비활성화했을 때 해결되는지 확인합니다.

단일 사용자 모드로 SQL Server 시작하기

  1. Windows 키를 누르고 SQL Server Configuration Manager를 입력해 실행합니다.
  2. SQL Server Services 탭에서 SQL Server 서비스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  3. Startup Parameters 탭으로 이동한 후 '시작 매개 변수 지정' 입력란에 다음을 입력합니다:
    -m
  4. 추가를 클릭하고 변경 사항을 적용합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  5. SQL Server 서비스를 마우스 오른쪽 버튼으로 클릭하고 다시 시작을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  6. Windows 키를 누르고 SQL Server Management Studio를 입력한 후 SSMS를 마우스 오른쪽 버튼으로 클릭해 관리자 권한으로 실행합니다.
  7. 관리자 계정으로 SQL 서버에 접속할 수 있는지 확인합니다.
  8. 접속이 가능하다면 도메인 계정을 SQL 서버에 추가하고 SysAdmin 역할을 부여합니다.
  9. SQL Server Configuration Manager 창으로 돌아가 Startup Parameters 탭에서 -m 매개변수를 제거합니다.
  10. SQL Server 서비스를 다시 시작한 후 정상적으로 작동하는지 확인합니다.

문제가 계속된다면 시작 매개변수나 경로 정보가 올바르게 구성되어 있는지 확인하세요. 그래도 해결되지 않는다면 사용자 계정에 데이터베이스 및 보고 서비스(Reporting Services)에 필요한 권한이 부여되어 있는지 점검한 후 문제가 해결되었는지 확인합니다.

서버 구성 관리자에서 TCP/IP 프로토콜 활성화

SQL 서버의 오류 코드 18456은 서버가 연결을 인증하지 못했다는 의미입니다. 네트워크를 통해 데이터베이스에 접근하는 데 필요한 TCP/IP 프로토콜이 서버 구성 관리자에서 비활성화되어 있으면 이러한 오류가 발생할 수 있습니다. 이 경우 SQL Server Configuration Manager에서 TCP/IP를 활성화하면 문제가 해결될 수 있습니다.

  1. Windows 키를 누르고 Microsoft SQL Server(연도가 붙은 항목, 예: 2008)를 확장합니다. 옵션을 찾으려면 스크롤을 조금 내려야 할 수 있습니다.
  2. SQL Server Configuration Manager를 열고 UAC 프롬프트가 나타나면 를 클릭합니다.
  3. 왼쪽 창에서 SQL Server Network Configuration을 확장하고 해당 서버/데이터베이스 이름의 Protocols를 선택합니다.
  4. 오른쪽 창에서 TCP/IP를 더블클릭하고 Enabled 드롭다운에서 를 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  5. 변경 사항을 적용한 후 Windows 키를 누릅니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  6. Services를 입력한 뒤 검색 결과를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  7. SQL Server(서버 이름이 표시된 항목)를 마우스 오른쪽 버튼으로 클릭하고 다시 시작을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  8. 오류 18456이 사라졌는지 확인합니다.

그래도 해결되지 않는다면 SQL 서버의 올바른 포트에 연결하고 있는지 확인하세요(특히 멀티 서버 환경에서 운영 중인 경우 중요합니다).

SQL Server 인증 모드 변경

SQL 서버의 인증 방식이 올바르게 구성되어 있지 않으면 오류 18456이 표시될 수 있습니다. 예를 들어 서버는 Windows 인증을 사용하도록 설정되어 있는데 SQL Server 인증으로 로그인을 시도하는 경우가 대표적입니다. 이 경우 인증 모드를 변경하면 문제가 해결될 수 있습니다. 진행하기 전에 현재 사용자(예: SA)의 로그인 상태가 활성화되어 있는지 먼저 확인하세요.

  1. SSMS의 개체 탐색기(Object Explorer)에서 해당 서버를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
  2. 왼쪽 창에서 보안(Security)을 선택하고, 오른쪽 창에서 SQL Server 및 Windows 인증 모드(또는 그 반대)를 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  3. 변경 사항을 적용한 후 개체 탐색기에서 서버를 마우스 오른쪽 버튼으로 클릭합니다.
  4. 다시 시작을 선택하고, 재시작이 완료되면 오류 18456 없이 데이터베이스에 접속할 수 있는지 확인합니다.

SQL에 로그인할 수 없는 경우라면 MS Sysinternals의 PsExec 도구를 설치한 후 관리자 권한 명령 프롬프트에서 다음 명령을 실행해 보세요:

psexec.exe -i -s ssms.exe

이후 SQL 설치 계정을 사용해 변경 작업을 수행하고, SA 계정이 비활성화되어 있지 않은지도 함께 확인하세요.

SA 계정 활성화 및 비밀번호 재설정

SQL 서버에 접속할 수 없다면 SA 계정을 활성화하고 비밀번호를 재설정하는 것으로 문제를 해결할 수 있습니다.

  1. Microsoft SQL Server Management Studio를 실행하고(도메인 관리자 계정을 사용해야 할 수 있음) 보안(Security)을 확장합니다.
  2. Logins를 더블클릭하고 SA를 엽니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  3. 새 비밀번호를 입력하고 확인란에 동일하게 입력합니다(반드시 강력한 비밀번호를 사용하세요).
  4. 서버 역할(Server Roles) 탭으로 이동해 다음 역할이 선택되어 있는지 확인합니다:
    Public
    
    Sysadmin
    Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  5. 상태(Status) 탭으로 이동해 오른쪽 창의 로그인 항목에서 사용(Enabled)을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  6. 변경 사항을 적용한 후 Windows 키를 클릭합니다.
  7. Services를 입력하고 마우스 오른쪽 버튼으로 클릭합니다.
  8. 관리자 권한으로 실행을 선택한 후 SQL Server 서비스로 이동합니다.
  9. 마우스 오른쪽 버튼으로 클릭하고 다시 시작을 선택합니다.
  10. 서비스가 재시작되면 오류 18456이 해결되었는지 확인합니다.

새 로그인 생성 및 Reporting Services 재시작

어떤 계정으로도 데이터베이스에 접속할 수 없다면 새 로그인을 생성하고 Reporting Services를 재시작하면 문제가 해결될 수 있습니다.

  1. Microsoft SQL Server Management Studio를 실행하고 보안(Security) 탭을 확장합니다.
  2. Logins를 확장한 후 마우스 오른쪽 버튼으로 클릭합니다.
  3. 새 로그인(New Login)을 선택하고 자격 증명을 입력합니다(SQL Server 인증을 사용하는 경우 로그인 이름에서 컴퓨터 계정을 선택).Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  4. '다음 로그인 시 반드시 암호 변경' 옵션을 체크 해제하고 사용할 데이터베이스를 선택합니다.
  5. 서버 역할(Server Roles) 탭으로 이동해 Public 역할을 선택합니다.
  6. 사용자 매핑(User Mapping) 탭에서 대상 데이터베이스를 선택하고 db_owner를 체크합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  7. 변경 사항을 적용한 후 Windows 키를 클릭합니다.
  8. Services를 입력한 뒤 검색 결과를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택합니다.
  9. SQL Server Reporting Service를 마우스 오른쪽 버튼으로 클릭하고 다시 시작을 선택합니다.Microsoft SQL Server 오류 18456(로그인 실패) 해결 방법 총정리
  10. 데이터베이스에 다시 접속해 오류 18456이 해결되었는지 확인합니다.

문제가 해결되었다면 BUILTIN\administrators 그룹에 사용자를 생성했는지 확인하세요. 이후에는 해당 사용자로 SQL 서버를 관리할 수 있습니다. 백업 파일에서 데이터베이스를 복원한 경우라면 기존 사용자 항목으로 인한 충돌을 방지하기 위해 사용자를 제거한 후 다시 추가하는 것이 좋습니다. 다른 사용자 계정으로 SQL 서버를 실행하려면 Windows 검색에서 Microsoft SQL Server를 입력한 후 Shift+마우스 오른쪽 버튼을 클릭하고 '다른 사용자로 실행'을 선택하세요. 마지막으로 Azure Data Studio를 사용해 SQL 서버에 접속하면 문제가 해결되는지도 확인해 볼 수 있습니다.