DCL为数据控制语言,主要用来权限管理。
谈到数据库权限,首先来说说两个专有名词,目的是了解当今数据库的两大权限形式。
-
自主访问控制(简单来说,就是有一个超级用户拥有所有权限,其他用户的任何操作需要超级用户分配权限)。
-
管理的方式不同就形成不同的访问控制方式。一种方式是由客体的属主对自己的客体进行管理,由属主自己决定是否将自己客体的访问权或部分访问权授予其他主体,这种控制方式是自主的,我们把它称为自主访问控制(Discretionary Access Control——DAC)。在自主访问控制下,一个用户可以自主选择哪些用户可以共享他的文件。Linux系统中有两种自主访问控制策略,一种是9位权限码(User-Group-Other),另一种是访问控制列表ACL(Access Control List)。
-
强制访问控制(权限是固定好的,要想进行更多的操作,就要升级权限)。
-
强制访问控制(Mandatory Access Control——MAC),用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。通俗的来说,在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件。其中多级安全(MultiLevel Secure, MLS)就是一种强制访问控制策略。
进入正题,DCL语言主要拥有两大功能,授权(grant)和回收权限(revoke);
1.创建用户(Linux,你的登陆要从root 启动,你可以在默认的mysql库中查看user表的信息,里面存放着各个用户的权限新信息)
代码:create “账号” @ localhost(主机或者其他客户端) identified by “密码”;
2.授予权限(grant),超级用户root拥有一切权限,上述没有给创建的用户授予更多的权限。
代码:grant Select on Grade .* to lqlq;//给用户lqlq查询表Grade的权限回收。
3.回收权限(revoke)
代码:revoke Select on Grade .* from lqlq;//把用户lqlq查询表Grade的权限回收。
相信大家对这个权限有一定了解了,赶紧去linux下或window下试试把,也相信大家也明白日后我们几乎几乎不可能删库跑路的,
因为我们根本没有删库的权限。