본문 바로가기
㏈ª By β┖υΕJini/MS-SQL

Delete Publication: the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission"

by ㏈ª ☞ β┖υΕJini.κR 2011. 12. 30.


얼마전 서버 이전 후 복제 관련한 오류가 발생하였다. 복제 구성시 물리적 File 소유자를 지정 되어 있지 않아 발생한 것이다.

USE <Publication database name>
GO
EXEC sp_droppublication @publication = N'<Publication name>'
USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'

트랜잭션 게시자 삭제시 아래와 같은 오류가 나는 경우가 있을 것이다.

“TITLE: Microsoft.SqlServer.ConnectionInfo

SQL Server could not disable publishing and distribution on <computer-name>\<sqlServerName>.

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.

Changed database context to 'master'. (Microsoft SQL Server, Error: 15517)”

이런 경우 복제에 사용되는 데이터베이스 소유자를 확인해봐야 한다.

 

서버 이전시 원래의 소유자에 대한 계정이 없어 발생한 것이었다.  Owner 에 소유자를 지정한 후 삭제 하면 정상 삭제 되는것을 볼 수 있다.

소유자 지정

exec sp_changedbowner @loginame = 'sa'