[MS-SQL] MS-SQL 포함유형 변경 방법
MS-SQL에서 포함유형에 대해 설명해드리겠습니다.
MS-SQL의 로그인 계정은 시스템데이터베이스 - master에 저장이 됩니다.
즉 개체탐색기 -> 보안 -> 로그인 에 있는 계정들은 DB서버에 로그인 할 수 있는 계정들이고 이 계정들은 master DB에 저장이 됩니다.
그리고 그 로그인 계정이 특정 DB에 접근이 필요하다면 해당 DB의 사용자로 등록이 되어야 합니다.
이 경우 그 특정 DB를 'MyDB'라고 지칭할 경우 MyDB를 백업 받아서 다른 DB서버에 복원을 한다면 로그인계정은 복원이 되지 않습니다.
이에 포함유형을 '부분'으로 바꾸면 해결이 가능합니다.
우선 포함유형을 '부분'으로 바꾸는 방법에 대해 설명드리겠습니다.
1. sp_configure 값 변경
sp_configure
위와 같이 sql을 실행하면
처럼 'contained database authentication'값이 0으로 되어있습니다. 이러면 포함유형을 '부분'으로 바꿀 수 없습니다.
sp_configure 'contained database authentication', 1
reconfigure
위와 같이 sql을 실행시킨 후
sp_configure
'contained database authentication'값이 1로 바뀐것을 확인할 수 있습니다.
2. 포함유형 변경
SSMS에서 작업모니터를 들어간다
이후
모니터링 -> 프로세스
를 들어간 후 변경하고자하는 DB(MyDB)에 접속자가 있기때문에
마우스 우클릭 -> 프로세스 종료 를 해줍니다.
위 사진 처럼 접속자가 하나도 없어야 합니다.
DB마우스 우클릭 -> 속성 -> 포함유형을 부분으로 변경한다.
3. 변경확인
DB -> 보안-> 사용자 마우스 우클릭 - 새 사용자로
사용자 유형이 '암호를 사용하는 SQL 사용자' 라고 나와있다.
test_user를 생성해본다.
데이터베이스 연결 -> 로그인/암호 입력 후 - 옵션을 누른다.
연결할 데이터베이스에 MyDB를 입력하고 연결을 하면 연결 할 수 있다.
이 로그인 계정은 MyDB에 대해서만 권한이 있으므로 나머지는 접근 권한이 없다.
DB서버에 인증을 해서 로그인 하는 개념이 아니라, 특정 DB에 인증을 해서 로그인하는 개념이기 때문에 해당 DB에만 접근 권한을 갖게된다.