sp_dropuser(Transact-SQL)
현재 데이터베이스에서 데이터베이스 사용자를 제거합니다. sp_dropuser는 이전 버전의 SQL Server와의 호환성을 위해 제공됩니다.
중요 |
---|
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 DROP USER를 사용하십시오. |
구문
sp_dropuser [ @name_in_db = ] 'user'
인수
- [ @name_in_db=] 'user'
제거할 사용자의 이름입니다. user는 sysname이며 기본값은 없습니다. user는 반드시 현재 데이터베이스에 있어야 합니다. Windows 로그인을 지정하는 경우에는 데이터베이스에서 알 수 있는 로그인 이름을 사용합니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
sp_dropuser는 sp_revokedbaccess를 실행하여 현재 데이터베이스에서 사용자를 제거합니다.
현재 데이터베이스에서 제거할 수 있는 사용자 이름 목록을 표시하려면 sp_helpuser를 사용합니다.
데이터베이스 사용자가 제거되면 해당 사용자의 모든 별칭도 함께 제거됩니다. 사용자가 사용자와 동일한 이름의 빈 스키마를 소유하는 경우 해당 스키마는 삭제됩니다. 데이터베이스 내의 다른 보안 개체를 소유하는 사용자는 삭제되지 않습니다. 이러한 사용자를 삭제하려면 먼저 개체의 소유권을 다른 보안 주체로 이전해야 합니다. 자세한 내용은 ALTER AUTHORIZATION(Transact-SQL)을 참조하십시오. 데이터베이스 사용자를 제거하면 사용자와 연관된 사용 권한이 자동으로 제거되며 이 사용자가 속해 있던 모든 데이터베이스 역할에서 해당 사용자가 제거됩니다.
sp_dropuser는 master 또는 tempdb 데이터베이스에서 데이터베이스 소유자(dbo), INFORMATION_SCHEMA 사용자 또는 guest 사용자를 제거하는 데는 사용할 수 없습니다. 시스템 데이터베이스가 아닌 데이터베이스에서 EXEC sp_dropuser 'guest'를 실행하면 guest 사용자의 CONNECT 권한이 취소됩니다. 그러나 사용자 자체는 삭제되지 않습니다.
사용자 정의 트랜잭션 내에서는 sp_dropuser를 실행할 수 없습니다.
사용 권한
데이터베이스에 대한 ALTER ANY USER 권한이 필요합니다.
예
다음 예에서는 현재 데이터베이스에서 Albert 사용자를 제거합니다.
EXEC sp_dropuser 'Albert';
GO