DBAtlas · 데이터베이스 운영 아틀라스

15151: Cannot find the object/principal because it does not exist or you do not have permission (객체/보안 주체가 존재하지 않거나 권한이 없어 찾을 수 없음)

SQL Server

의미

참조한 객체나 보안 주체(사용자, 역할, 로그인)가 존재하지 않거나, 이에 접근/작업할 권한이 없다. 보안상 SQL Server는 두 경우를 하나의 메시지로 통합한다.

원인

GRANT/ALTER/DROP 같은 명령에서 존재하지 않는 사용자, 역할, 스키마 또는 객체 이름을 사용했거나, 잘못된 데이터베이스 컨텍스트에서 실행했거나(객체가 다른 DB에 있음), 작업에 필요한 권한이 없는 경우다. 오타, 대소문자, 스키마 접두사가 흔한 원인이다.

해결 방법

객체/보안 주체 이름의 철자가 정확한지, 올바른 데이터베이스에 있는지 확인한다. 사용자: SELECT name, type_desc FROM sys.database_principals; 객체는 sys.objects를 조회한다. 실행 계정에 필요한 권한(예: ALTER ANY USER, CONTROL)이 있는지 확인한다. 올바른 스키마 접두사(dbo.object 등)를 사용한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목