DROP ROLE(Transact-SQL)

적용 대상: 예SQL Server(지원되는 모든 버전) 예Azure SQL Managed Instance 예Azure Synapse Analytics 예병렬 데이터 웨어하우스

데이터베이스에서 역할을 제거합니다.

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

구문

-- Syntax for SQL Server  
  
DROP ROLE [ IF EXISTS ] role_name  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  

DROP ROLE role_name  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

IF EXISTS
적용 대상: SQL Server (SQL Server 2016(13.x) ~ 현재 버전).

이미 있는 경우에만 역할을 조건적으로 삭제합니다.

role_name
데이터베이스에서 삭제할 역할을 지정합니다.

설명

보안 개체를 소유한 역할은 데이터베이스에서 삭제할 수 없습니다. 보안 개체를 소유한 데이터베이스 역할을 삭제하려면 먼저 해당 보안 개체의 소유권을 이전하거나 데이터베이스에서 해당 보안 개체를 삭제해야 합니다. 멤버가 있는 역할은 데이터베이스에서 삭제할 수 없습니다. 멤버가 있는 역할을 삭제하려면 먼저 해당 역할의 멤버를 제거해야 합니다.

데이터베이스 역할에서 멤버를 제거하려면 ALTER ROLE (Transact-SQL)를 사용합니다.

DROP ROLE을 사용하여 고정 데이터베이스 역할을 삭제할 수 없습니다.

역할 멤버 자격에 대한 내용은 sys.database_role_members 카탈로그 뷰에서 볼 수 있습니다.

주의

SQL Server 2005부터 스키마 동작이 변경되었습니다. 이에 따라 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수 있습니다. sysobjects를 비롯한 이전 카탈로그 뷰는 CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION 중 하나의 DDL 문이 사용된 적이 있는 데이터베이스에서는 사용할 수 없습니다. 이러한 데이터베이스에서는 새 카탈로그 뷰를 대신 사용해야 합니다. 새 카탈로그 뷰에서는 SQL Server 2005에 도입된 보안 주체와 스키마의 분리를 고려하고 있습니다. 카탈로그 뷰에 대한 자세한 내용은 카탈로그 뷰(Transact-SQL)를 참조하세요.

서버 역할을 제거하려면 DROP SERVER ROLE (Transact-SQL)를 사용합니다.

사용 권한

데이터베이스에 대한 ALTER ANY ROLE 권한 또는 역할에 대한 CONTROL 권한 또는 db_securityadmin 의 멤버 자격이 필요합니다.

예제

다음 예에서는 AdventureWorks2012 데이터베이스에서 purchasing 데이터베이스 역할을 삭제합니다.

DROP ROLE purchasing;  
GO  

참고 항목

CREATE ROLE (Transact-SQL)
ALTER ROLE (Transact-SQL)
보안 주체(데이터베이스 엔진)
EVENTDATA(Transact-SQL)
sp_addrolemember(Transact-SQL)
sys.database_role_members(Transact-SQL)
sys.database_principals(Transact-SQL)
보안 함수(Transact-SQL)