欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

数据控制语言(DCL)语法合集

发布时间:2025/3/20 编程问答 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 数据控制语言(DCL)语法合集 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

  • 用户的创建、删除、查询和改密
  • 授权:授予与回收
  • 数据库角色
  • 上述语句实战

用户的创建、删除、查询和改密

创建用户

语法格式: create user '用户名'@ '允许登录的位置' identified by '密码';例:创建一个U1用户本地登录,用户的密码是123 create user 'U1'@ 'localhost' identified by '123';此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。 如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

删除用户

语法格式: drop user '用户名'@'允许登录的位置';

查询所有用户

select user,host from mysql.user;

查看用户的权限

show grants for 用户名;

更改用户密码

--方法1,密码实时更新 set password for 用户名 =password('密码'); --方法2,需要刷新 update mysql.user set password=password('密码') where user='用户名' flush privileges; # 刷新

授权:授予与回收

授予权限

语法格式: grant <权限>[,<权限>].... on<对象类型><对象名>[,<对象类型><对象名>]... to<用户>[,<用户>]... [with grant option];如果指定了with grant option子句, 则获得某种权限的用户还可以把这种权限再授予其他的用户。 如果没有指定with grant option子句,则获得某种权限的用户只能使用该权限,不能传播该权限。 SQL标准允许具有with grant option的用户把相应权限或其子集传递授予其他用户, 但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。

回收权限

revoke <权限>[,<权限>].... on <对象类型> <对象名>[,<对象类型> <对象名].... from <用户>[,<用户>].........[cascade | restrict];

数据库角色

数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
因此,可以为一组具有相同权限的用户创建创建一个角色,使用角色来管理数据库权限可以简化授权的过程。

创建角色

创建角色的语法格式: create role <角色名>

给角色授权

语法格式: grant <权限> [,<权限>]..... to <对象类型> 对象名 to <角色>[,<角色>].......

将一个角色授予其他的角色或用户

语法格式: grant <角色1>[,[角色2]]..... to <角色3>[,<用户>]...... [with admin option]

角色权限的收回

语法格式: revoke <权限>[,<权限>]...... on <对象类型><对象名> from<角色>[,<角色>].......用户可以收回角色的权限,从而修改角色的权限。

上述语句实战

创建一个用户名为hui 密码为 123 的本地用户 创建一个用户名为xiao 密码为 123 登录位置省略的用户目的: 查看用户创建语句默认的登录方式是什么?


查看当前的用户

由上述图片你会发现,当我们创建一个用户如果省略登录位置,
则默认表示在任何一台电脑上都可以登录。

给hui用户赋予student表的查权限,给xiao用户student的所有权限。


出现上述报错是因为没有指明该用户的登录方式。
如果是任意的登录方式就不用指明用户的登录方式。

如下图所示:

查看当前用户hui和xiao拥有的权限

撤销hui的select权限


删除xiao用户

创建一个角色 U 给U对于student表有查询权和更新权。 将角色U赋予用户hui 查看用户hui的权限 删除用户hui 删除用户U






总结

以上是生活随笔为你收集整理的数据控制语言(DCL)语法合集的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。