在SQL的分类中有DMLDDLDCL,哪些属于DML,哪些属于DDL,哪些属于DCL

在SQL的分类中有DMLDDLDCL,哪些属于DML,哪些属于DDL,哪些属于DCL,第1张

在一些公司中提交给测试团队的SQL脚本会划分为DDL、DML等,但这些概念到底是如何定义的呢?

SQL(Structure Query Language)是数据库 *** 作的的核心语言,接下来我们通过一张图来进行分析:

如果想系统的学习编程可以来我这看看

DDL(Data Definition Languages)语句: 即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等

常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。

DML(Data Manipulation Language)语句: 即数据 *** 纵语句,用来查询、添加、更新、删除等

常用的语句关键字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增删改查。

DCL(Data Control Language)语句: 即数据控制语句,用于授权/撤销数据库及其字段的权限(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system)。

常用的语句关键字有:GRANT,REVOKE。

TCL(Transaction Control Language)语句: 事务控制语句,用于控制事务

常用的语句关键字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。

DQL:(Data QueryLanguage)语句: 数据查询语言

常用的语句关键字有:SELECT, FROM, WHERE, ORDER BY, HAVING,ASC|DESC

希望对您有所帮助!~

db_accessadmin

固定数据库角色的成员可以为

Windows

登录名、Windows

组和

SQL

Server

登录名添加或删除数据库访问权限。db_backupoperator 固定数据库角色的成员可以备份数据库。db_datareader

固定数据库角色的成员可以从所有用户表中读取所有数据db_datawriter

固定数据库角色的成员可以在所有用户表中添加、删除或更改数据

db_ddladmin

固定数据库角色的成员可以在数据库中运行任何数据定义语言

(DDL)

命令 db_denydatareader

固定数据库角色的成员不能读取数据库内用户表中的任何数据

db_denydatawriter

固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。db_owner

固定数据库角色的成员可以执行数据库的所有配置和维护活动,还可以删除数据库。db_securityadmin

固定数据库角色的成员可以修改角色成员身份和管理权限。向此角色中添加主体可能会导致意外的权限升级。

GRANT -- 定义访问权限

语法

GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }

[,] | ALL [ PRIVILEGES ] }

ON [ TABLE ] tablename [, ]

TO { username | GROUP groupname | PUBLIC } [, ] [ WITH GRANT OPTION ]

GRANT { { CREATE | TEMPORARY | TEMP } [,] | ALL [ PRIVILEGES ] }

ON DATABASE dbname [, ]

TO { username | GROUP groupname | PUBLIC } [, ] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }

ON FUNCTION funcname ([type, ]) [, ]

TO { username | GROUP groupname | PUBLIC } [, ] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }

ON LANGUAGE langname [, ]

TO { username | GROUP groupname | PUBLIC } [, ] [ WITH GRANT OPTION ]

GRANT { { CREATE | USAGE } [,] | ALL [ PRIVILEGES ] }

ON SCHEMA schemaname [, ]

TO { username | GROUP groupname | PUBLIC } [, ] [ WITH GRANT OPTION ]

GRANT { CREATE | ALL [ PRIVILEGES ] }

ON TABLESPACE tablespacename [, ]

TO { username | GROUP groupname | PUBLIC } [, ] [ WITH GRANT OPTION ]

例子

把表 films 的插入权限赋予所有用户:

GRANT INSERT ON films TO PUBLIC;

赋予用户manuel对视图kinds的所有权限:

GRANT ALL PRIVILEGES ON kinds TO manuel;

请注意,如果上面的命令由超级用户或者 kinds 的所有者执行,那么它实际上会赋予所有权限, 如果由其他人执行,那么它会赋予这个“其他人”拥有授权选项的所有权限。

收回授权 搜索 Revoke!

创建好用户后,几个需要赋权限的地方,写出来以备后用。

1在安全性用户属性中,登录用户的服务器角色为public

2

用户映射到数据的数据库角色成员身份为:db_owner和public,默认架构为dbo

3

状态为允许连接到数据引擎和登录

在允许访问的数据库属性权限中,创建用户权限

1加上读取、更新、删除,

2加上控制和连接复制这两个,用户可以在sql

server管理界面中直接连接,

3加上更改任意架构,用户可以修改表结构

把其他的权限设为拒绝,这样他就只有读取、更新、删除,及修改表结构的权限

ORACLE数据库中的权限和角色

Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种 *** 作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。

1 权限

Oracle数据库有两种途径获得权限,它们分别为:

① DBA直接向用户授予权限。

② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。

使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。

Oracle中的权限可以分为两类:

•系统权限

•对象权限

11 系统权限

系统权限是在数据库中执行某种 *** 作,或者针对某一类的对象执行某种 *** 作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。

系统权限的权利很大,通常情况下:

① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。

② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。

③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库

④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。

12对象权限

对象权限是针对某个特定的模式对象执行 *** 作的权利。只能针对模式对象来设置和管理对象权限。

对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。

但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。

用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。

2 角色

21角色的概念

角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行 *** 作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。

22角色的优点

通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:

•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权 *** 作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。

•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。

•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等 *** 作。

下面以Oracle9i为例,给出具体的实现用户授权:

(1)设定各种角色,及其权限

CREATE ROLE checkerrole DENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANT SELECT,UPDATE ON

accountpaytable TO checkerrole;

GRANT CONNECT TO defaultrole;

(2)创建用户

CREATE USER xiaoli IDENTIFIEDBY xiaoli;

(3)授权

GRANT checkerrole TO xiaoli;

GRANT defaultrole TO xiaoli;

(4)设定用户缺省的角色

ALTER USER xiaoli DEFAULTROLE defaultrole;

(5)注册过程

CONNECT xiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001;

---- *** 作成功后,xiaoli拥有checkerrole的权限。

----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全

;

在一些公司中提交给测试团队的SQL脚本会划分为DDL、DML等,但这些概念到底是如何定义的呢?

SQL(Structure Query Language)是数据库 *** 作的的核心语言,接下来我们通过一张图来进行分析:

如果对编程感兴趣可以来我这看看

DDL(Data Definition Languages)语句: 即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等

常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。

DML(Data Manipulation Language)语句: 即数据 *** 纵语句,用来查询、添加、更新、删除等

常用的语句关键字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增删改查。

DCL(Data Control Language)语句: 即数据控制语句,用于授权/撤销数据库及其字段的权限(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system)。

常用的语句关键字有:GRANT,REVOKE。

TCL(Transaction Control Language)语句: 事务控制语句,用于控制事务

常用的语句关键字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。

DQL:(Data QueryLanguage)语句: 数据查询语言

常用的语句关键字有:SELECT, FROM, WHERE, ORDER BY, HAVING,ASC|DESC

希望对您有所帮助!~

以上就是关于在SQL的分类中有DML\DDL\DCL,哪些属于DML,哪些属于DDL,哪些属于DCL全部的内容,包括:在SQL的分类中有DML\DDL\DCL,哪些属于DML,哪些属于DDL,哪些属于DCL、sql server 2005 给数据库用户授权、在sql中怎么为数据库角色设置权限呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10202339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存