티스토리 뷰

SQL Server 인스턴스를 만들 때 인증 방식을 혼합 모드로 만들어서 sa 계정을 만들어 놓고 그 뒤로 윈도우 인증 방식으로만 접속하다보니 sa 계정 비밀번호를 잊어버리는 사태가 발생한 적이 있었다.. 이 때 sa 계정이 필요했던 이유는 윈도우 인증 방식이 [컴퓨터 이름]\[인스턴스 이름]으로 인증하기 때문에 컴퓨터 이름을 변경하면서 사용할 수 없어졌기 때문이다.

이번 포스팅은 sa 계정 비밀번호를 변경하기 위해 여러 번의 구글링과 몇 번의 오류를 해결한 뒤에 성공했던 여정을 기록한 글이다.

 

 

시작!

먼저, 컴퓨터 이름을 다시 기존 이름으로 바꾼 뒤 윈도우 인증 방식으로 SQL Server에 접속한다.

[개체 탐색기]에서 서버 이름을 우클릭한 뒤 [속성] > [보안] > [서버 인증]에 들어가서 [SQL Server 및 Windows 인증모드(S)]로 인증 방법을 변경한다.

 

 

이제 [개체 탐색기]에 있는 서버의 하위 목록인 [보안] > [로그인] 으로 들어가면 sa가 있는데 이를 더블클릭하면 아래 화면이 나온다. 여기서 암호를 변경한 뒤 SQL Server 구성관리자에서 인스턴스를 재시작하면 된다.

 

 

이후에 변경한 sa 계정으로 접속해도 "접속할 수 없다"라는 오류가 발생하는 경우, 암호가 제대로 변경되지 않을 수도 있기 때문에 cmd를 관리자모드로 실행 후 아래 명령어를 통해 암호를 변경해 줘야 한다.

osql -E 는 윈도우 인증 방식으로 SQL Server 인스턴스 접속하라는 명령어이다.

  > osql -E
  > EXEC sp_password NULL, '원하는 패스워드', 'sa'
  > GO

 

 

이렇게 해서 성공하면 좋겠지만 내 경우에는 접속을 시도하니 아래와 같은 오류가 발생했다.

 

"서버에는 연결했지만 로그인 하는 동안 오류가 발생했습니다. (provider: 공유메모리 공급자. error: 0 - 파이프의 다른 끝에 프로세스가 없습니다.)"

 

이를 해결하기 위해 SQL Server 구성관리자에 들어가서 아래 화면과 같이 네트워크 구성 > 프로토콜 > TCP/IP를 "사용" 으로 변경한 뒤 SQL Server 구성관리자에서 인스턴스를 재시작했다.

 

 

이렇게까지 했는데도 위와 동일한 오류가 발생한다면, cmd 관리자모드에서 아래 명령어를 입력한다. 이는 인터넷 연결 문제가 있을 때 TCP/IP 설정 정보들을 초기상태로 돌리는 작업이다.

> netsh Winsock reset

 

그리고 나서 컴퓨터를 재부팅한 후 또 다시 SQL Server 구성관리자에서 인스턴스를 재시작한다.

 

그렇게 다시한번 sa 계정으로 접속해 보았으나 다음의 오류가 발생했다.

 

"[ 오류 : 18470 ] 계정을 사용할 수 없습니다."

 

이는 sa 계정으로 로그인이 비활성화 되었기 때문에 발생하는 오류로, SQL Server에 윈도우 인증방식으로 접속 후 쿼리 창에 아래 쿼리를 실행해 sa계정을 활성화 하면 된다.

ALTER LOGIN [sa] ENABLE

 

이렇게 하고 다시 sa 계정으로 로그인하니 그제서야 접속에 성공했다!! 

 

 

'Database' 카테고리의 다른 글

SQLD 과목 II 정리 노트  (0) 2020.05.28
[MSSQL] OUTPUT, APPLY 문법 정리  (0) 2020.05.27
[MSSQL] MERGE 문법 정리  (1) 2020.05.27
[MSSQL] CTE 문법 정리  (0) 2020.05.27
[MSSQL] 세 가지 JOIN 계획 정리  (0) 2020.05.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함