본문으로 바로가기

MSSQL 로그인 실패 관련 모음

category 데이터베이스[DB]/Mssql 2017. 5. 4. 22:12

MSSQL 설치후 보안 로그인 계정을 만들어 로그인 시도를 하거나 만들거나 했을때 에러나는 패턴모음입니다.

저의 경우는 데이터를 이전하다보면 자주 겪는 문제입니다.


1 . 현재 데이터베이스에 사용자, 그룹 또는 역활 '[아이디]' 이(가) 이미 있습니다.


□ 상황 : 이전 서버에서 데이터베이스를 백업하고 이전후 서버에 데이터베이스 복원을 합니다. 그리고 동일한 로그인 ID를 만들려고 하니

다음과 같이 이미 사용자 아이디가 존재한다고 에러가 발생합니다.


[스크린샷 참고]


□ 발생이유 : 로그인 계정을 만들고 데이터베이스에 매핑을 할때 고유 로그인 보안정보가 포함되어있습니다. 만약 데이터베이스를 이전하고 복원을 한후에

그대로 동일한 아이디를 생성하여 연결할려고 하면 고유 로그인 정보가 일치하지 하지 않기 때문에 위와같은 에러가 발생합니다.


□ 조치방법 : 매핑 연결 방법[스크린샷 참고]

[참고]


■ 매핑 연결 쿼리문[MSSQL 2000]

USE [Database Name]

GO

EXEC sp_change_users_login "update_one", "User ID", "User ID"

GO


■ 매핑 연결 쿼리문[MSSQL 2005 ↑버전 이상]

USE [Database Name]

GO

ALTER USER "User ID" WITH LOGIN = "User ID"

GO


■ "sp_change_users_login" 아직까지 현재버전[MSSQL 2012]까지는 지원을 하고 있으나 MS에서 상위버전에서 제외하겠다는 말이 있었습니다.

그렇기에 "ALTER USER" 구문 사용에 적응하여 사용하시는것을 권고합니다. 




2. 서버에는 연결했지만 로그인 하는 동안 오류가 발생했습니다.

(provider: 공유메모리 공급자. error: 0 - 파이프의 다른 끝에 프로세스가 없습니다.)


[스크린샷 참고]


해당오류는 동일한 오류가 발생하지만 패턴이 여러가지가 있을수 있을수 있습니다.


□ 패턴1 : 원격으로 접속시 [TCP / IP] 사용 허용이 되어있는지 확인

[실행 → 시작설치(구성도구 : SQL Server 구성관리자) 실행 → MSSQLSERVER에 대한 프로토콜 → TCP/IP 사용 으로 변경후 재로그인] 


□ 패턴2 : 서버 인증을 (SQL Server 및 Windows 인증모드) 로 설정하였는지 확인

[Windows 인증으로 로그인 → 해당개체 마우스 오른쪽 클릭(속성) → 보안 → SQL Server 및 Windows 인증모드 사용 으로 변경후 재로그인] 


※ 패턴3 : 위방법대로 전부 조치를 하였으나! 계속 동일한 오류가 발생시 다음과 같이 한번 해보시기 바랍니다.

제가 이패턴때문에 수도없이 지웠다가 복원했다가 재 매핑하였지만 소용이 없어 구글을 몇시간이나 검색하다가 알아낸 조치방법입니다.

[CMD(명령 프롬프트) 실행 → 커맨드( netsh Winsock reset ) 실행 → 서버 재시작 → 재 연결 시도]


[참고]


■  netsh Winsock reset

해당 명령어는 검색해보니 인터넷 연결 문제가 있을때 TCP/IP 설정 정보들을 초기상태로 돌리는 작업입니다.

왜 이걸하고나서 되는지는 의문입니다. 저의 경우는 원격이 아닌 로컬연결시도 였습니다. 어쨌든 정상적으로 로그인이되어 다행이지만

혹시나 저랑 같은 증상이 발생한다면 묻지도 따지지도 말고 일딴 한번 해보시기 바랍니다!



다른 오류가 확인될경우 계속해서 추가하도록 하겠습니다.

'데이터베이스[DB] > Mssql' 카테고리의 다른 글

MSSQL 로그인 실패 관련 모음  (0) 2017.05.04

댓글을 달아 주세요