DCL (데이터 제어 언어)

권한 부여, 거부 및 거부 데이터베이스 사용 권한

DCL (Data Control Language)은 SQL ( Structured Query Language )의 서브 세트이며 데이터베이스 관리자가 관계형 데이터베이스에 대한 보안 액세스를 구성 할 수 있도록합니다. 데이터베이스 오브젝트를 추가 및 삭제하는 데 사용되는 DDL (Data Definition Language)과 데이터베이스 컨텐츠를 검색, 삽입 및 수정하는 데 사용되는 DML (Data Manipulation Language)을 보완합니다.

DCL은 GRANT, REVOKE 및 DENY의 세 가지 명령으로 구성되므로 SQL 하위 집합 중 가장 단순합니다. 이러한 세 가지 명령을 결합하여 관리자는 데이터베이스 권한을 매우 세밀하게 설정하고 제거 할 수있는 유연성을 제공합니다.

GRANT 명령을 사용하여 권한 추가

GRANT 명령은 관리자가 데이터베이스 사용자 에게 새 권한을 추가하는 데 사용됩니다. 다음과 같이 정의되는 매우 간단한 구문을가집니다.

부여 [권한] ON [개체] TO [사용자] [WITH GRANT OPTION]

이 명령으로 제공 할 수있는 각 매개 변수의 개요는 다음과 같습니다.

예를 들어, 사용자 Joe에게 HR이라는 데이터베이스의 employees 테이블에서 정보를 검색 할 권한을 부여한다고 가정합니다. 다음 SQL 명령을 사용할 수 있습니다.

Joe에게 HR.employees를 부여합니다.

이제 Joe는 employees 테이블에서 정보를 검색 할 수 있습니다. 그러나 GRANT 문에 WITH GRANT OPTION 절을 포함하지 않았으므로 다른 사용자에게 해당 테이블의 정보를 검색 할 수있는 권한을 부여 할 수 없습니다.

데이터베이스 액세스 취소

REVOKE 명령은 이전에 그러한 액세스 권한이 부여 된 사용자로부터 데이터베이스 액세스를 제거하는 데 사용됩니다. 이 명령의 구문은 다음과 같이 정의됩니다.

REVOKE [GRANT OPTION FOR] [권한] ON [개체] FROM [사용자] [CASCADE]

다음은 REVOKE 명령의 매개 변수에 대한 설명입니다.

예를 들어, 다음 명령은 이전 예에서 Joe에 부여 된 권한을 취소합니다.

조 (Joe)의 HR.employees에 대한 선택 취소

명시 적으로 데이터베이스 액세스 거부

DENY 명령은 사용자가 특정 권한을 수신하지 못하게하는 데 사용됩니다. 사용자가 권한을 부여받은 역할 또는 그룹의 구성원이고 예외를 작성하여 해당 개별 사용자가 권한을 상속하지 못하도록하려는 경우 유용합니다. 이 명령의 구문은 다음과 같습니다.

DENY [권한] ON [개체] TO [사용자]

DENY 명령의 매개 변수는 GRANT 명령에 사용 된 것과 동일합니다.

예를 들어, Matthew가 employees 테이블에서 정보를 삭제할 수 없도록하려면 다음 명령을 실행하십시오.

Matthew에 HR.employees를 삭제하지 않음