2010-01-07 3 views
0

내 SQL Server 데이터베이스에서 역할 중 하나를 삭제하려고합니다. 나는 역할에서 모든 회원을 떨어 뜨 렸는데, 나는이 오류 메시지를 받았는데 역할을 포기하려고했을 때 :SQL Server 데이터베이스에서 역할을 삭제 하시겠습니까?

Msg 15138, Level 16, State 1, Line 13 
The database principal owns a schema in the database, and cannot be dropped. 

왜 그 이유를 알고 있습니까? Owned Schema를 확인한 후 자체 서명 된 체크 부호 만있었습니다.

답변

2

스키마를 소유하는 데이터베이스 보안 주체를 삭제할 수 없습니다. 데이터베이스 주체를 제거하기 전에 스키마 소유권을 다른 데이터베이스 주체로 전송하거나 스키마를 삭제해야합니다.

0

15138 오류는 사용자가 삭제하려고하는 사용자가 스키마를 소유하고 있기 때문에 발생했습니다.

아래 쿼리를 실행하면 사용자가 소유 한 스키마가 생성됩니다.

USE DatabaseName; 
SELECT s.name 
FROM sys.schemas s 
WHERE s.principal_id = USER_ID('UserName'); 

'db_denydatareader'스키마를 반환한다고 가정 해 보겠습니다. 그런 다음 스키마를 기본 사용자 'dbo'에 아래 쿼리를 사용하여 할당 할 수 있습니다.

ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo; 
관련 문제