SQL Server

MSSQL 복구시 계정에 관련된 내용

KruizerG 2020. 4. 9. 14:08

/*작성일자*/

- 2017.05.17

[내용]

  - 신규 서버에 복구한 DB에서 계정 및 스키마 삭제시 복구된 DB 영향도

  - 계정 및 스키마 삭제시 오류 발생

    데이터베이스 보안 주체는 데이터베이스의 스키마를 소유하며 삭제할 수 없습니다.

    오류 : 15138

    오류 : 3729

 

[대상 시스템]

  - MSSQL 2012

 

[내용 확인]

  - 백업받은 디비를 신규 서버에 복원했을시에 로그인 계정과 복원된 DB계정의 SID가 맞지 않아 맵핑시켜줘야 하는 작업이 필요한데,

     복원된 DB의 계정과 로그인 계정이 서로 mapping되어 있지 않고, 기존의 계정 및 스키마를 사용하지 않을거면 삭제를 진행해도 

     복원된 DB의 영향도는 없다.

  - 계정 삭제시 오류가 발생(조치방법)

 

  - 현재 해당 계정이 소유하고 있는 스키마를 확인한다.

USE AdventureWorks2012;

SELECT s.name

FROM sys.schemas s

WHERE s.principal_id = USER_ID('degitalIPk');

 

USE DB명;

SELECT s.name

FROM sys.schemas s

WHERE s.principal_id = USER_ID('계정이름');

 

  - 확인된 스키마를 dbo로 변경한다.

ALTER AUTHORIZATION ON SCHEMA::db_datareader TO dbo;

ALTER AUTHORIZATION ON SCHEMA::db_datawriter TO dbo;

 

  - 해당 계정을 삭제한다.

 

  - 스키마 삭제시 오류 발생(조치 방법)

  - ‘DF_DbookServiceInfo_PublishScope’ 이라는 객체가 현재 삭제하려는 스키마를 참조하고 있기 때문에 삭제가 되지 않고 오류가 발생

 

  - 아래의 쿼리문을 통해 해당 스키마를 dbo로 이전

USE DB명

ALTER SCHEMA dbo TRANSFER degitalIPk.DF_DbookServiceInfo_PublishScope

ALTER SCHEMA dbo TRANSFER 스키마명.참조하고 있는 객체

 

  - 해당 스키마 삭제