mysql数据库DCL

我会带着你远行 2023-01-10 13:26 134阅读 0赞

mysql数据库DCL

DCL(授权控制),将一部分的权限给部分用户,部分用户再管理库、表、字段。

权限级别

权限的级别代表有哪些权限可以授予给用户使用。
权限有以下级别:

global level 所有库,所有表的权限
database level某个数据库中所有表的权限.
table level库中的某个表的权限
column level表中的某个字段的权限

通常使用的是database level。

mysql用户管理

mysql权限授予的时候默认是root用户。
可以查看用户的位置是在mysql库中的user表中。
在这里插入图片描述
可以查看user表的结构

  1. desc mysql.user\G;

在这里插入图片描述

创建用户
  1. # localhost代表本地登陆
  2. # create user 用户@"登陆点" 确认方式 密码;
  3. create user user1@"localhost" identified by "Yue@123456";
  4. create user user1@"192.168.1.%";

可以使用select查询创建的用户

  1. select host,user from mysql.user;

在这里插入图片描述
在这里插入图片描述可以使用user1登陆Mysql.

  1. mysql -uuser1 -p"Yue@123456"
删除用户
  1. drop user "user1"@"localhost";
修改密码

用户修改自己的密码

  1. set password=password("Ui@12367");# 设置密码
  2. flush privileges;# 刷新

可以在shell中修改mysql的密码:

  1. mysqladmin -uroot -p"Mysql@Password123" password "Yue@12345"

如何破解mysql的密码

1.修改mysql的配置文件,影响启动方式
/etc/my.cnf是mysql的主配置文件。

  1. vi /etc/my.cnf

在这里插入图片描述

在文件中另起一行编写

  1. skip-grant-tables

2.重启

  1. systemctl restart mysqld

3.无密码登陆

  1. mysql -uroot

4.改密码
使用root账户登录到mysql中,要修改mysql的密码:

  1. update mysql.user set authentication_string=password("Mysql@Password123") where user="root" and host="local host";
  2. flush privileges;

5.修改配置文件
退出mysql,回到shell中,将修改的主配置文件的跳过密码注释掉:

  1. # skip-grant-tables

6.重启,使用新密码登录。

  1. systemctl restart mysqld
  2. mysql -uroot -p"Mysql@Password123"
用户登录
  1. # mysql -u用户 -p密码 -P Mysql服务器的端口 数据库名称 -e执行 "命令" -h 远程服务器
  2. mysql -uroot -p"Mysql@Password123" -P 3306 mysql -e "show tables"

mysql支持远程登录
mysql服务器可以用命令登录另一台的客户机的mysql

mysql权限原理

mysql授权的语法:

  1. grant 权限列表 on 库名.表名 to "用户名"@"客户机" [identified by "密码" with option参数];

权限列表有all所有权限(不包括授权权限)和select、update查询更新
数据库.表名有“*”(所有库下的所有表),比如web.* 表示web库下的所有表
客户端主机有: 192.168.1.* 该网段下的所有主机
with option参数:grant option授权选项

mysql权限示例

授予admin3对bbs库所有的表,具有所有权限但是不包含授权权限

  1. grant all on bbs.* to "admin3"@"localhost" identified by "Mysql@Password123";

回收权限:
查看自己的权限

  1. show grants\G

在这里插入图片描述
作为root还可以查看别人的权限:

  1. show grants for admin3@"localhost"\G

回收某个用户的权限:

  1. # revoke 权限列表 on 数据库名from 用户名@"客户端主机";
  2. revoke all privileges on bbs.* from admin3@"localhost";

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysql数据库DCL

    mysql数据库DCL DCL(授权控制),将一部分的权限给部分用户,部分用户再管理库、表、字段。 权限级别 权限的级别代表有哪些权限可以授予给用户使用。 权