MSSQL 저장 프로시저 소유권을 변경하는 방법은 무엇인가요?
💡 요약 정리
- MSSQL 2005 / 2008에서 Store procedures 소유권을 변경하는 방법입니다
- SSMS(SQL매니지먼트툴) - New Query 메뉴에서 쿼리를 실행합니다
- CURSOR를 사용하여 모든 저장 프로시저를 순회하며 소유권을 변경합니다
- SQL Server 2005 이상: alter schema와 alter authorization 사용
- 이전 버전: sp_changeobjectowner 사용
MSSQL 2005 / 2008에서 Store procedures 소유권을 변경하는 방법입니다
SSMS(SQL매니지먼트툴 실행) - New Query 메뉴 실행후 아래 쿼리를 입력후 실행하시면 소유권이 변경되게 됩니다.
DECLARE
@OldOwner sysname,
@NewOwner sysname
SET @OldOwner = 'oldOwner'
SET @NewOwner = 'dbo'
DECLARE CURS CURSOR FOR
SELECT
name
FROM
sysobjects
WHERE
type = 'p'
AND
uid = (SELECT uid FROM sysusers WHERE name = @OldOwner)
AND
NOT name LIKE 'dt%' FOR READ ONLY
DECLARE @ProcName sysname
OPEN CURS
FETCH CURS INTO @ProcName
WHILE @@FETCH_STATUS = 0
BEGIN
IF @@VERSION >= 'Microsoft SQL Server 2005'
BEGIN
EXEC('alter schema ' + @NewOwner + ' transfer ' + @OldOwner + '.' + @ProcName)
exec('alter authorization on ' + @NewOwner + '.' + @ProcName + ' to schema owner')
END
ELSE
EXEC('sp_changeobjectowner ''' + @OldOwner + '.' + @ProcName + ''', ''' + @NewOwner + '''')
FETCH CURS INTO @ProcName
END
CLOSE CURS
DEALLOCATE CURS
문제가 해결되지 않았나요?
궁금하신 사항은 언제든지 1:1 문의게시판으로 문의해 주세요.
문의 시 포함 정보:
- 카페24 아이디
- 서비스 ID: 서버호스팅 서비스 ID
- MSSQL 버전: SQL Server 버전 정보
- 현재 소유자: 변경하려는 프로시저의 현재 소유자
- 대상 소유자: 변경할 소유자 이름
- 에러 메시지: 쿼리 실행 시 발생한 에러
- 문의 내용: MSSQL 저장 프로시저 소유권 변경 관련 문의 사항