다음을 통해 공유


sp_dropuser(Transact-SQL)

현재 데이터베이스에서 데이터베이스 사용자를 제거합니다. sp_dropuser는 이전 버전의 SQL Server와의 호환성을 위해 제공됩니다.

중요 정보중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 DROP USER를 사용하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_dropuser [ @name_in_db = ] 'user'

인수

  • [ @name_in_db=] 'user'
    제거할 사용자의 이름입니다. user는 sysname이며 기본값은 없습니다. user는 반드시 현재 데이터베이스에 있어야 합니다. Windows 로그인을 지정하는 경우에는 데이터베이스에서 알 수 있는 로그인 이름을 사용합니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

sp_dropusersp_revokedbaccess를 실행하여 현재 데이터베이스에서 사용자를 제거합니다.

현재 데이터베이스에서 제거할 수 있는 사용자 이름 목록을 표시하려면 sp_helpuser를 사용합니다.

데이터베이스 사용자가 제거되면 해당 사용자의 모든 별칭도 함께 제거됩니다. 사용자가 사용자와 동일한 이름의 빈 스키마를 소유하는 경우 해당 스키마는 삭제됩니다. 데이터베이스 내의 다른 보안 개체를 소유하는 사용자는 삭제되지 않습니다. 이러한 사용자를 삭제하려면 먼저 개체의 소유권을 다른 보안 주체로 이전해야 합니다. 자세한 내용은 ALTER AUTHORIZATION(Transact-SQL)을 참조하십시오. 데이터베이스 사용자를 제거하면 사용자와 연관된 사용 권한이 자동으로 제거되며 이 사용자가 속해 있던 모든 데이터베이스 역할에서 해당 사용자가 제거됩니다.

sp_dropusermaster 또는 tempdb 데이터베이스에서 데이터베이스 소유자(dbo), INFORMATION_SCHEMA 사용자 또는 guest 사용자를 제거하는 데는 사용할 수 없습니다. 시스템 데이터베이스가 아닌 데이터베이스에서 EXEC sp_dropuser 'guest'를 실행하면 guest 사용자의 CONNECT 권한이 취소됩니다. 그러나 사용자 자체는 삭제되지 않습니다.

사용자 정의 트랜잭션 내에서는 sp_dropuser를 실행할 수 없습니다.

사용 권한

데이터베이스에 대한 ALTER ANY USER 권한이 필요합니다.

다음 예에서는 현재 데이터베이스에서 Albert 사용자를 제거합니다.

EXEC sp_dropuser 'Albert';
GO