天天看點

資料庫必知詞彙:資料控制語言DCL

|名詞定義|

資料控制語言(Data Control Language, DCL)是SQL語言四大主要分類之一,是用來設定或者更改資料庫使用者或角色權限的語句,通過GRANT或REVOKE實作權限控制,确定單個使用者和使用者組對資料庫對象的通路。某些RDBMS可用GRANT或REVOKE控制對表單個列的通路。在預設狀态下,隻有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行資料控制語言。

| 發展曆程 |

SQL(Structure Query Language)語言是資料庫的核心語言。資料控制語言DCL是SQL語言四大主要分類之一。SQL的發展是從1974年開始的,其發展過程如下:

1974年—–由Boyce和Chamberlin提出,當時稱SEQUEL。

1976年—–IBM公司的Sanjase研究所在研制RDBMS SYSTEM R時改為SQL。

1979年—–ORACLE公司發表第一個基于SQL的商業化RDBMS産品。

1982年—–IBM公司出版第一個RDBMS語言SQL/DS。

1985年—–IBM公司出版第一個RDBMS語言DB2。

1986年—–美國國家标準化組織ANSI宣布SQL作為資料庫工業标準。

SQL是一個标準的資料庫語言,是面向集合的描述性非過程化語言。它功能強,效率高,簡單易學易維護(迄今為止,我還沒見過比它還好學的語言)。然而SQL語言由于以上優點,同時也出現了這樣一個問題:它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而絕大部分應用都是一個完整的過程,顯然用SQL完全實作這些功能是很困難的。是以大多數資料庫公司為了解決此問題,作了如下兩方面的工作:(1)擴充SQL,在SQL中引入過程性結構;(2)把SQL嵌入到進階語言中,以便一起完成一個完整的應用。

| 技術特點 |

資料控制語言的語句包括動詞GRANT、DENY、REVOKE等,其功能如下:

GRANT:此指令用于把語句權限或者對象權限授予給其他使用者和角色。文法形式是GRANT {ALL | statement[,...n]} TO security_account [ ,...n ]

DENY:此指令用于拒絕給目前資料庫内的使用者或者角色授予權限,并防止使用者或角色通過其組或角色成員繼承權限。文法形式是DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ]

REVOKE:REVOKE語句是與GRANT語句相反的語句,它能夠将以前在目前資料庫内的使用者或者角色上授予或拒絕的權限删除,但是該語句并不影響使用者或者角色從其他角色中作為成員繼承過來的權限。文法形式是REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ]

| 相關詞 |

SQL - Structure Query Language語言是資料庫的核心語言

GRANT – 授權

REVOKE – 撤銷使用者的通路權限

| 案例展示 |

使用基于DCL的資料庫。

MySQL - 是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,屬于 Oracle 旗下産品。

Oracle - 是是甲骨文公司的一款關系資料庫管理系統。

Hive – 是基于Hadoop的一個資料倉庫工具,用來進行資料提取、轉化、加載。

HBase –是一個分布式的、面向列的開源資料庫。

| 資料來源 |

MySQL Introduction

https://www.mysql.com/MySQL

Tutorials

https://www.w3schools.in/mysql/ddl-dml-dcl/SQL

Introduction

https://www.w3schools.com/sql/sql_intro.asp

楊波,許麗娟主編;陳剛,駱珍儀,李思思副主編.電子商務概論:北京郵電大學出版社,2014.08

Data Control Language (DCL) for Database Permissions

https://www.lifewire.com/data-control-language-dcl-1019477

SQL Data Control Language (DCL)

https://www.tutorialride.com/dbms/sql-data-control-language-dcl.htm

Explain Data Control Language (DCL) with Examples in DBMS

https://whatisdbms.com/explain-data-control-language-dcl-with-examples-in-dbms/