数据控制语言DCL语句集合 及常用的 操作权限 的相关知识是本文我们主要要介绍的内容,我们知道,DCL是数据控制语言(Data Control Language,DCL)。具备控制数据库中数据权限的功能。
GRANT 定义权限
GRANT 权限1,权限2…
ON 对象类型 对象名
TO 用户1,用户2…
(WITH GRANT OPTION) ;
其语义为,将GRANT子句中指定的某操作对象的权限授予指定的用户。
对于不同类型的数据对象有不同的操作权限,常见的操作权限如下:
常用的操作权限对象 | 对象类型 | 操作权限 |
属性列 | SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES | |
视图 | SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES | |
基本表 | SELECT,INSERT,UPDATE,DELETE,ALTER,INDEX,ALL PRIVILEGES | |
数据库 | CREATE TABLE,ALTER TABLE |
授权的用户可以是一个或者多个具体的用户,也可以是PUBLIC,即全体用户。
WITH GRANT OPTION 的含义是获得某种权限的用户还可以把这种权限再授予其他用户。如果在定义权限时没有指定WITH GRANT OPTION,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1:把查询Student表的权限授给用户U1:
例2:把查询Student表和修改学号的权限授给用户U2:
例3:把对表SC的INSERT权限授予U3用户,并允许将此权限再授予其他用户:
REVOKE 收回权限
REVOKE 权限1,权限2…
ON 对象类型 对象名
FROM 用户1,用户2…;
通过REVOKE收回定义的权限。
例1:把用户U2修改学生学号的权限收回:
例2:把用户U3对SC表的INSERT权限收回:
在收回权限的时候,DBMS采用级联收回的策略,即在收回U3权限的同时也收回了U3授予U4的权限。
关于数据控制语言DCL语句集合及常用的操作权限的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
什么是DQL,DML,DDL,DCL-victorymoshui-ITPUB博客
DQLDQL:Data Query Language SELECT 数据查询语言select具体用法SELECT select_list[ INTO new_table ]FROM table_source[ WHERE search_condition ][ GROUP BY group_by_expression ][ HAVING search_condition ][ ORDER BY order_expression [ ASC | DESC ] ]例子:找出emp表中员工号为007的员工的工资SELECT emp tWHERE =007DML DML = Data Manipulation Language,数据操纵语言,命令使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。 具体是指是SELECT查询、UPDATE更新、INSERT插入、DELETE删除。 DML(Data Manipulation Language)数据操纵语言,SQL的分类之一,此外还有DDL(Data Definition Language)数据定义语言和DCL(Data Control Language)数据控制语言。 DML包括:INSERT、UPDATE、DELETE。 注意,select语句属于DQL(Data Query Language)。 DML分成交互型DML和嵌入型DML两类。 依据语言的级别,DML又可分成过程性DML和非过程性DML两种。 如insert,delete,update,select(插入、删除、修改、检索)等都是DML.交互型DML:这类DML自成系统,可在终端上直接对数据库进行操作。 嵌入型DML:这类DML是嵌入在主语言中使用。 此时主语言是经过扩充能处理DML语句的语言。 过程性DML:用户编程时,不仅需要指出“做什么”(需要什么样的数据),还需要指出“怎么做”(怎么获得数据)。 层状、网状的DML属于过程性语言。 非过程性DML:用户编程时,只需要指出“做什么”,不需要指出“怎么做”。 关系型DML属于非过程性语言。 DDL数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。 一个数据库模式包含该数据库中所有实体的描述定义。 这些定义包括结构定义、操作方法定义等。 数据库模式定义语言并非程序设计语言,DDL数据库模式定义语言是SQL语言(结构化程序设计语言)的组成部分。 SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。 DDL描述的模式,必须由计算机软件进行编译,转换为便于计算机存储、查询和操纵的格式,完成这个转换工作的程序称为模式编译器。 模式编译器处理模式定义主要产生两种类型的数据:数据字典以及数据类型和结构定义。 数据字典和数据库内部结构信息是创建该模式所对应的数据库的依据,根据这些信息创建每个数据库对应的逻辑结构;对数据库数据的访问、查询也根据模式信息决定数据存取的方式和类型,以及数据之间的关系和对数据的完整性约束。 数据字典是模式的内部信息表示,数据字典的存储方式对不同的DBMS各不相同。 数据类型和结构的定义,是指当应用程序与数据库连接操作时,应用程序需要了解产生和提取的数据类型和结构。 是为各种宿主语言提供的用户工作区的数据类型和结构定义,使用户工作区和数据库的逻辑结构相一致,减少数据的转换过程,这种数据类型和结构的定义通常用一个头文件来实现。 数据库模式的定义通常有两种方式: 交互方式定义模式和通过数据描述语言 DDL 描述文本定义模式。 CREATE DATABASE 创建数据库CREATE {DATABASE | SCHEMA} db_name[create_specification [, create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name| [DEFAULT] COLLATE collation_nameCREATE TABLE创建数据库表格CREATE [TEMPORARY] TABLE tbl_name[(create_definition,...)][table_options] [select_statement]ALTER TABLE修改数据库表格ALTER TABLE tbl_namealter_specification [, alter_specification] _specification:ADD [COLUMN] column_definition [FIRST | AFTER col_name ]| ADD [COLUMN] (column_definition,...)| ADD INDEX (index_col_name,...)| ADD [CONSTRAINT [symbol]]PRIMARY KEY (index_col_name,...)| ADD [CONSTRAINT [symbol]]UNIQUE (index_col_name,...)| ADD (index_col_name,...)| ADD [CONSTRAINT [symbol]]FOREIGN KEY (index_col_name,...)[reference_definition]| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}| CHANGE [COLUMN] old_col_name column_definition[FIRST|AFTER col_name]| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]| DROP [COLUMN] col_name| DROP PRIMARY KEY| DROP INDEX index_name| DROP FOREIGN KEY fk_symbol| DISABLE KEYS| ENABLE KEYS| RENAME [TO] new_tbl_name| ORDER BY col_name| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]| DISCARD TABLESPACE| IMPORT TABLESPACE| table_optionsDROP TABLE删除数据库表格DROP [TEMPORARY] TABLEtbl_name [, tbl_name] ...[RESTRICT | CASCADE]CREATE VIEW创建查询命令CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]VIEW view_name [(column_list)]AS select_statement[WITH [CASCADED | LOCAL] CHECK OPTION]ALTER VIEW修改查询命令ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]VIEW view_name [(column_list)]AS select_statement[WITH [CASCADED | LOCAL] CHECK OPTION]DROP VIEW删除查询命令DROP VIEWview_name [, view_name] ...[RESTRICT | CASCADE]DCLDCL(Data Control Language)是数据库控制语言。 是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。 在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCLDCL数据库控制语言不同于程序设计语言,SQL语言(结构化程序设计语言)的组成部分包括了DCL数据库控制语言。 SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
SQL到底可以分几种语言
DDL (Data Definition Language) 资料定义语言DML (Data Manipulation Language)资料处理语言DQL (Data Query Language)资料查询语言 DCL (Data Control Language)资料控制语言 DAC (Data Administration Commands)资料管理语言TCC (Transactional control commands)交易控制指令1. DDL:允许资料库使用者建立与重建资料库物件,如建立或更新删除表格。 DDL指令 :(1) CREATE TABLE (建立表格,属於概念层指令)(2) ALTER TABLE (修改表格,例如:增掩表格属性)(3) DROP TABLE (删除表格)(4) CREATE INDEX (建立索引表)(5) ALTER INDEX(6) DROP INDEX(7) CREATE VIEW (产生景观,属於外部纲目指令)(8) ALTER VIEW(9) DROP VIEW2. DML:用来插入、更新及删除关联式资料库的资料,DML有三个主要指令:insert、 delete、update。 3. DQL:允许资料库使用者查询资料库中相关的资料。 DQL只有一个select指令,这里的select指令与关联式代数的「选择」指令意义并不同。 4. DCL:DCL控制使用者对资料库内容的存取权限。 主要指令有:REVOKE删除权限、ALTER PASSWORD、GRANT授与权限、SYNONYM。 5. DAC:允许使用者对使用中的资料库产生稽核与分析,共有两种主要指令:START AUDIT、STOP AUDIT。 6. TCC:用来管理资料的交易。 以下为主要指令: (1) COMMIT:确认资料库的交易。 交易一旦确认就永久有效。 (2) ROLLBACK:回复资料库的交易。 使交易回到未被确认状态。 (3) SAVEPOINT:设立群组内交易的指标。 (4) SET TRANSACTION:为每一次交易命名。 COMMIT、ROLLBACK、SAVEPOINT只能与DML的insert、delete、update指令一起使用。
发表评论