가끔... SQL Server가 Windows 계정으로 설치되고 로컬에서만 사용되기 때문에 sa 계정을 모를 때가 있다.

특히 SQLExpress 같이 다른 프로그램 설치될 때 함께 설치되는 경우에는 더더욱 그렇다.


그런 경우에 sa 계정으로는 로그인이 되지 않을까?


천만에.


심지어 Windows 인증 모드 전용으로 설정되어 있는 경우에도

sa 계정 패스워드를 변경하고 sa로 로그인할 수 있다.


이것이 필요한 경우는... 굳이 말할 필요는 없겠지만

테스트 목적으로 해당 SQL Server를 급히 활용해야 할 때라든가,

아니면 원격으로 다른 컴퓨터에서 연결을 해야 할 필요가 있을 때, 정도...?




이미 서버에 SQL Server Management Studio가 설치되어 있는 경우에는

SQL Server Management Studio를 통해서 쉽게 변경이 가능하므로 아래 글은 읽을 필요 없겠다.


이 글은 SQL Server Management Studio를 설치할 수 없는 환경이거나

설치하려니 몹시 귀찮은 경우에 사용할 수 있는 팁 정도가 되겠다.




그럼 먼저,

Windows 인증 모드를 혼합 모드로 바꾸는 방법

아래 레지스트리 값을 수정하면 된다.


[HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer]

LoginMode=0x00000001 (REG_DWORD)


SQL Server 2000 이전에는 위 값을 바꾸면 됐지만,

이후 버전은 기본 명명 인스턴스라는 개념이 생기면서 좀 바뀌었다.


[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL{버전번호}.MSSQLSERVER\MSSQLServer]

LoginMode=0x00000001 (REG_DWORD)


이 값을 1에서 2로 바꿔주면 된다.


>> 참조: https://support.microsoft.com/en-us/kb/285097




다음으로,

sa 패스워드를 바꾸는 방법.


>> 출처: http://www.wikihow.com/Reset-SA-Password-in-Sql-Server


위 출처에 그림과 함께 상세하게 나와 있지만 다시 한번 옮겨 적어 보면,


먼저 명령 프롬프트를 실행하고


osql -L


명령을 실행하면 로컬 및 로컬 네트워크에 설치된 SQL Server 인스턴스 목록이 주루룩 나온다.


그 중에서 해당되는 로컬 SQL 서버 인스턴스의 이름을 찾아서 기억해 두거나 복사한 다음,


osql -S {서버 인스턴스 명} -E


이상의 명령을 실행하면 아래에


1>

2>

3>

4>


이런 식으로 명령줄을 입력할 수 있는 줄이 생기는데(처음엔 1> 만 생긴다)

거기에다 아래 명령을 입력하면 된다.


1> sp_password NULL, '1234', 'sa'

2> GO

3>


GO를 입력하고 엔터를 쳐도 뭔가 아무런 반응을 하지 않는 듯해서 의아하게 생각할 수 있지만

그게 끝이다. 이미 변경되었다.


sa 계정으로 로그인해 보면 된다.


끝.





Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]