본문 바로가기

컴터생각

Microsoft SQL Server에서 보안계정 연결시키기..

96년도에 졸업하고 사회생활을 하면서 가장 처음으로 접한 DB서버가 MS SQL 6.5였다.. 그래서 그런지, 오라클 보다는 MS SQL에 더 정이 가는가보다.. 첫인연도 그렇지만, 사용하기에 MS SQL 서버가 훨씬 편리하다는 특징이 더 이런 상황을 만들었을 것이라 생각한다..

MS SQL 서버의 편리함은 인스톨과정에서 부터 조금만 사용해보면 바로 나타난다.. 설치, DB 생성, 백업, 백업으로부터의 복구 등등의 과정을 프로젝트 진행간 자주 해보면 MS SQL 서버를 사용해보면 편리하다.. mySQL 같이 간편하면서, 성능은 오라클 못지 않는다고나 할까.. 뭐, 이렇게 말하면 오라클 유저들에게 한 소리 듣는다.. 어떻게 오라클과 MS SQL을 성능 비교를 할 수 있느냐, 비교할 것을 해야지.. 하지만, 난 MS SQL과 오라클의 성능차이는 거의 없다고 생각한다..

아무튼, MS SQL 서버를 사용하면서 가장 편리한 점은 DB 복사를 손쉽게 할 수 있다는 것이다.. 예를들면 개발중인 DB서버에서 이 DB를 다른 서버에 그대로 복사본을 만들고 싶으면 DB 파일만 새 서버에 복사를 해서 새 MS SQL 서버에서 파일로 DB에 연결만 하면 끝이다.. 오라클에서는 이 과정이 꽤 복잡하다..

하지만, 이때 좀 귀찮은 경우가 생길때가 있다.. 위와 같은 방법으로 A서버에 CBT라는 DB를 B서버에 똑같이 만들어서 A서버에서는 계속 개발을하고 B서버에서 단위테스트를 진행을 했다.. 그러다 DB가 변경된 부분들이 생겨서 B서버에 DB를 다시 옮겨야 한다.. 이때도 B서버의 CBT DB를 없애고 위와 같은 방법으로 새로 붙이면 되는데 문제는 계정이 좀 꼬이는 경우가 생긴다..

A서버에서와 같은 이름과 패스워드 계정으로 CBT DB에 접근하고 싶은데 이미 계정이 있으니 만들 수 없다는 둥, 이런 문제가 발생하는 것이다.. 정말 큰 문제는 이런 경우 MS SQL 엔터프라이즈 메니저 (2000이하) 혹은 SQL Server Management Studio (2005이상)가 제공하는 UI 상에서는 이 문제를 해결할 수 있는 방법이 없다.. 모든 작업을 커맨드 라인이 아닌 UI에서 하는 MS SQL 서버의 특징에 위배되는 상황이다.. 하지만, 뭐 방법없다.. UI에서 제공 안해주니 별 수 없지.. 쿼리를 날려 해결해야 한다.. 이때 사용하는 스토어드 프로시저가 sp_change_users_login 이다..

사용법 : EXEC sp_change_users_login 'Update_One', 'cbt', 'cbt'
이 스토어드 프로시저를 사용하지 않으면 해결할 수 있는 방법이 없는데, 도움말에서 이거 찾기도 쉽지 않다.. 쩝..
728x90