데이터 제어 언어

Data control language

의사결정 제어 언어(DCL)는 데이터베이스에 저장된 데이터에 대한 액세스를 제어하는 데 사용되는 컴퓨터 프로그래밍 언어(승인)와 유사한 구문이다. 특히 구조화 질의어(SQL)의 구성요소다. 의사결정 제어 언어는 SQL 명령어에 있는 논리적 그룹 중 하나이다. SQL[1] 관계형 데이터베이스 관리 시스템의 표준 언어다. SQL 문은 데이터베이스에 데이터를 삽입하거나, 데이터베이스의 데이터를 삭제 또는 업데이트하거나, 데이터베이스에서 데이터를 검색하는 등의 작업을 수행하는 데 사용된다.

데이터베이스 시스템은 SQL을 사용하지만, 일반적으로 시스템에서만 사용되는 자체적인 추가 독점 확장 기능도 가지고 있다. 예를 들어 Microsoft SQL Server는 SQL의 확장인 T-SQL(Transact-SQL)을 사용한다. 마찬가지로 Oracle은 PL-SQL을 사용하며, PL-SQL은 자신들에게만 해당된다. 그러나 「선택」, 「삽입」, 「업데이트」, 「삭제」, 「만들기」, 「만들기」, 「드롭」 등의 표준 SQL 명령을 사용하여 데이터베이스로 해야 하는 거의 모든 것을 완수할 수 있다.

DCL 명령의 예는 다음과 같다.

  • 지정된 사용자가 지정된 작업을 수행할 수 있도록 허용하는 GRANT.
  • 데이터베이스 개체에 대한 사용자 접근성을 제거하려면 [취소]를 선택하십시오.

사용자 또는 역할로부터 권한을 부여받거나 취소할 수 있는 작업은 데이터 정의 언어(DDL)와 데이터 조작 언어(DML) 모두에 적용되며 CONNECT, SELECT, INSERT, UPDATE, DELETE, EXECUTEUSE를 포함할 수 있다.

마이크로소프트 SQL 서버

Microsoft SQL Server에 따라 SQL Commands 그룹은 4개(MSSQL)

  • DML(데이터 조작 언어)
  • DDL(데이터 정의 언어)
  • DCL[2](데이터 제어 언어)
  • TCL(Transaction Control Language)

DCL 명령은 데이터베이스의 사용자에 대한 접근 제어 및 권한 관리에 사용된다. 테이블 또는 레코드(행 수준 보안)의 사용자에 대한 일부 작업을 쉽게 허용하거나 거부할 수 있다.

DCL 명령은 다음과 같다.

그랜트
데이터베이스의 지정된 그룹/사용자에 대해 테이블(및 다른 개체)에 대한 특정 권한을 부여할 수 있다.
거부
그룹/사용자로부터 특정 권한을 금지한다.
취소됨
이 명령은 그룹/사용자로부터 권한을 빼앗는다.

예를 들어, GRANT는 특정 테이블이나 여러 테이블에서 선택, 삽입, 업데이트 및 삭제 권한을 사용자에게 부여하는 데 사용될 수 있다.

RECUBLE 명령은 권한(기본값)을 되찾거나 요구 사항에 따라 UPDATE 또는 DELETE와 같은 특정 명령을 취소하는 데 사용된다.

 그랜트 선택,삽입,갱신하다,삭제 에 관하여 직원 에게 User1   취소하다 삽입 위에 직원 에게 user1   거부하다 갱신하다 위에 직원  user1 

첫 번째 경우 GRANT는 사용자 1에게 직원이라는 테이블에서 선택, 삽입, 업데이트 및 삭제 작업을 수행할 수 있는 권한을 부여했다.

이 명령으로 취소하면 기본 권한으로 되돌릴 수 있으며, 이 경우 사용자1에 대한 테이블 직원의 INSERT 명령을 다시 가져올 수 있다.

DENE는 특정 명령어다. 모든 사용자에게 거부되거나 부여된 권한 목록이 있다고 결론을 내릴 수 있으므로 DENE 명령을 사용하여 데이터베이스 개체에 대한 일부 권한을 명시적으로 금지하십시오.

Oracle 데이터베이스

Oracle은 SQL 명령을 다른 유형으로 나누었다. 그들은 그렇다.

  • DDL(데이터 정의 언어) 문
  • DML(데이터 조작 언어) 문
  • 거래 관리 명세서
  • 세션 제어 문
  • 시스템 제어 문
  • 포함된 SQL 문

자세한 내용은 Oracle-TCL[3] 참조하십시오.

DDL(데이터 정의 언어) 문을 통해 다음과 같은 작업을 수행할 수 있다.

  • 스키마 개체 만들기, 변경 및 삭제
  • 권한 및 역할 부여 및 취소
  • 테이블, 인덱스 또는 클러스터의 정보 분석
  • 감사 옵션 설정
  • 데이터 사전에 주석 추가

따라서 Oracle 데이터베이스 DDL 명령에는 Microsoft SQL Server에서 실제로 Data Control Language의 일부인 Grant and reclease 권한이 포함되어 있다.

Oracle의 허가 및 취소를 위한 구문:

그랜트 선택, 삽입, 갱신하다, 삭제 켜기 db1.직원  user1;  취소됨 선택, 삽입, 갱신하다, 삭제 켜기 db1.직원 From user1; 

Oracle의 트랜잭션 제어 문

거래관리명세서는 DML명세서에 의한 변경사항을 관리한다. 거래 통제 명세서는 다음과 같다.

  • 커밋
  • 롤백
  • 세이브포인트
  • 트랜잭션 설정
  • 제약 조건 설정

MySQL 서버

MySQL 서버는 SQL 문을 다른 유형의 문으로 나눈다.

  • 데이터 정의 문
  • 데이터 조작 문
  • 트랜잭션 및 잠금 문
  • 복제 문
  • 준비된 문장
  • 복합문 구문
  • 데이터베이스 관리 문
  • 유틸리티 문

자세한 내용은 MySQL Transactional 문[4] 참조하십시오.

허가, 취소된 구문은 계정 관리 시스템 데이터베이스 관리 설명서의 일부분이다.

GRANT 문장은 시스템 관리자가 사용자 계정과 역할에 부여할 수 있는 권한과 역할을 부여할 수 있도록 한다. 다음과 같은 구문 제한이 적용된다.

  • GRANT는 동일한 문장에서 권한과 역할 모두를 부여하는 것을 혼용할 수 없다. 주어진 GRANT 명령문은 권한이나 역할을 부여해야 한다.
  • ON 조항은 문장이 권한 또는 역할을 부여하는지 여부를 다음과 같이 구분한다.
  • ON 상태에서 이 명령문은 권한을 부여한다.
  • ON이 없으면 이 성명은 역할을 부여한다.
  • 계정에 권한과 역할을 모두 할당할 수 있지만, 각각 부여할 항목에 적절한 구문을 가진 별도의 GRANT 문을 사용해야 한다.

RECUBLE 문을 사용하면 시스템 관리자가 권한과 역할을 취소할 수 있으며, 이는 사용자 계정 및 역할에서 취소할 수 있다.

취소됨 삽입 켜기 *.* From 'jeffrey'@'localhost';  취소됨 'role1', 'role2' From 'user1'@'localhost', 'user2'@'localhost';  취소됨 선택 켜기 세계.* From 'role3';  그랜트 모두 켜기 db1.*  'jeffrey'@'localhost';  그랜트 'role1', 'role2'  'user1'@'localhost', 'user2'@'localhost';  그랜트 선택 켜기 세계.*  'role3'; 

포스트그레SQL, DCL 실행은 트랜잭션이며 롤백할 수 있다.

권한 부여 및 취소는 데이터베이스에서 사용자에게 부여된 권한을 제어하는 데 사용되는 SQL 명령임

SQLite에는 사용자 이름이나 로그인이 없기 때문에 DCL 명령이 없다. 대신 SQLite는 데이터베이스를 열고 액세스할 수 있는 사용자를 정의하는 파일 시스템 권한에 의존한다.[5]

참고 항목

참조

  1. ^ "The SQL Standard – ISO/IEC 9075:2016 (ANSI X3.135) – ANSI Blog". The ANSI Blog. 2018-10-05. Retrieved 2020-09-19.
  2. ^ "TechNet Wiki". social.technet.microsoft.com. Retrieved 2020-09-19.
  3. ^ "Database SQL Language Reference". docs.oracle.com. Retrieved 2020-09-19.
  4. ^ "MySQL :: MySQL 8.0 Reference Manual :: 13.7.1 Account Management Statements". dev.mysql.com. Retrieved 2020-09-19.
  5. ^ 2010년 J.A.의 크레이비치. SQLite를 사용해서, 오렐리.