- 서버-Study For Us 윈도우서버구축 외
- 개발-CMS Factory css외 각 강좌
- 개발-자바스크립트-전체이미지변화
- 개발-MSDN
- 개발-웹표준 W3
- 개발-JQuery
- 개발-JQuery 웹 테스트
- 개발-nayha
- 개발-HTML, CSS
- 개발-SQL 구문 만들기 주는 사이트
- 개발-SQLER
- 정보-컴퓨터 IP 포트 개방 확인
- 정보-파코즈
- 정보-MSwindowsforum
- 정보-인터넷진흥원,개인정보침해신고
- 정보-랜섬웨어침해대응센터
- 정보-스누피박스
- 디자인소스-Flaticon
- 디자인소스-Landing FREE UI KIT
- 교육-W3Schools
- 교육-juniorSW
- 교육-생활코딩
- 프로그램-Everything
- PDF 변환 사이트
- 장래성
- 웹데브
- 공유기없이
- Easy DriverPacks
- 디자인
- 가성비 cpu
- godmode-workout
- 노트북공유
- 포토샵
- 막힌코
- 공신닷컴
- npp
- 아이프레임 변경
- 천푸쉬업
- 3천스쿼트
- WanDrv6
- push-squat-repeat-workout
- 이지드라이버
- squats-challenge
- psd
- ab-mod
- 만능드라이버
- iframe 자동
- 가성비 그래픽카드
- Push-ups
- god mod
- 아이프레임 리사이징
- 사용자별 공유
- squats
- lstore
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
오리, 하늘 날다
MSSQL 현재 데이터베이스에 사용자 그룹 또는 역할 이(가) 이미 있습니다 본문
MSSQL 현재 데이터베이스에 사용자 그룹 또는 역할 이(가) 이미 있습니다
보통 이러한 오류는 MSSQL 에서 데이터베이스 파일(mdf, ldf) 를 연결/복원을 하고, 명령을 실행하려 할 때 발생한다.
데이터베이스를 연결/복원한 후, 데이터베이스를 올바르게 구동시키기 위해 기존 데이터베이스에서 사용하던 유저를 생성하여 명령을 실행시켰을 때
와 같은 오류가 발생한다. 유저가 이미 있다니? 이게 무슨 말일까?
이는 기존의 데이터베이스에 존재하는 유저의 이름과 새로 생성한 유저의 이름은 같지만 서로의 고유 번호인 SID(보안 ID)가 서로 달라서 생기는 문제다. 이름은 같지만 보안 ID가 달라 다른 유저로 인식하는데, 새로 생성한 유저로 명령을 실행하려니 기존에 똑같은 이름의 유저가 존재하여 위와 같은 오류를 발생시키는 것이다.
이를 해결하기 위해서는 유저를 매핑하는 프로시저인 sp_change_users_login 프로시저 또는 ALTER USER 명령을 사용하면 된다. 이 명령을 사용하게 되면 기존 데이터베이스 사용자를 SQL Server 로그인에 매핑하게 된다.
기존 데이터베이스에 존재하는 유저의 ID가 TestUser, 데이터베이스 세팅을 위해서 새로 생성한 유저의 ID도 TestUser일 경우 쿼리는 다음과 같다.
또는
ALTER USER TestUser WITH LOGIN = TestUser
물론, 기존의 데이터베이스가 여러개 존재할 경우, 기존의 각 데이터베이스에 등록된 유저 정보를 모두 매핑해야하므로 각 데이터베이스마다 모두 위의 명령을 한차례씩 실행시켜주어야 한다.
※ MSDN에 따르면, SQL Server 2014 까지는 sp_change_users_login 프로시저가 지원되고 있지만 이 프로시저는 언젠가 삭제될 예정이라고 한다. 이 명령을 사용하고 있는 응용 프로그램이 있다면 위에 기술한 ALTER USER 명령을 사용하는 것을 권고한다.
참고 : https://msdn.microsoft.com/ko-kr/library/ms174378(v=sql.120).aspx