본문 바로가기
잡식

MSSQL에서 테이블 소유자 일괄 변경 방법

by 불멸도도 2024. 7. 31.

MS SQL 서버에서 테이블 소유자를 일괄적으로 변경하는 작업은 때때로 필수적입니다. 특히 데이터베이스의 소유자 구조를 변경해야 하거나 특정 보안 요구사항을 충족해야 할 때 유용합니다. 이 가이드에서는 SQL 스크립트를 사용하여 테이블 소유자를 일괄 변경하는 방법을 자세히 설명합니다.

SQL 스크립트를 통한 테이블 소유자 변경

SQL Server에서 테이블 소유자를 변경하는 가장 효율적인 방법은 SQL 스크립트를 사용하는 것입니다. 이 스크립트는 모든 테이블을 순회하며 소유자를 변경합니다. 다음은 그 예입니다.

SQL 스크립트 예제

DECLARE @TABLE_NAME VARCHAR ( 50 )
 DECLARE @TABLE_OWNER VARCHAR ( 50 )
 DECLARE TCURSOR CURSOR

FOR  SELECT TABLE_NAME, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_TYPE = 'BASE TABLE'  AND TABLE_NAME <> 'dtproperties' 
FOR  READ  ONLY

OPEN TCURSOR 
 FETCH  NEXT  FROM TCURSOR INTO @TABLE_NAME, @TABLE_OWNER
 WHILE @@FETCH_STATUS = 0 
BEGIN 
    EXEC ( 'SP_CHANGEOBJECTOWNER ''[' + @TABLE_OWNER + '].[' + @TABLE_NAME + ']'', ''새로운 소유자계정이름''' )
     FETCH  NEXT  FROM TCURSOR INTO @TABLE_NAME, @TABLE_OWNER
 END 
CLOSE TCURSOR
 TCURSOR 할당 해제
반응형

 

이 스크립트는 현재 데이터베이스에 있는 모든 테이블의 소유자를 새로운 소유자로 변경합니다.

변경 후 검증

소유자 변경 작업이 완료된 후, 모든 테이블이 예상대로 새로운 소유자로 변경되었는지 검증하는 과정이 필요합니다. 이를 위해 간단한 쿼리를 사용하여 테이블의 현재 소유자를 확인할 수 있습니다.

SELECT TABLE_NAME, TABLE_SCHEMA 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
반응형

결론

MS SQL 서버에서 테이블 소유자를 일괄적으로 변경하는 것은 데이터베이스 관리에서 중요한 작업입니다. SQL 스크립트를 사용하면 효율적이고 신속하게 이 작업을 수행할 수 있습니다. 보안 요구사항을 충족하고 관리 효율성을 높이기 위해 테이블 소유자를 변경하는 것은 필수적인 과정일 수 있습니다.

반응형