DB (데이터베이스)/MS-SQL

[MS-SQL] MS-SQL 포함유형 변경 방법

뜽배 2024. 1. 29. 09:16
728x90
반응형

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에만 접근 권한을 갖게된다.

728x90
반응형