Linux下MySQL数据库的安全配置

1. 修改mysql管理员账户的密码

方法一:shell命令

mysqladmin  -u  root  -p  password  "123"

Linux下MySQL数据库的安全配置_第1张图片

方法二:mysql数据库命令

mysql>use mysql;

mysql>update user set password=password('123') where user='root' and host='localhost';

mysql> FLUSH PRIVILEGES;     #刷新

Linux下MySQL数据库的安全配置_第2张图片

可以发现,密码已经更改成功;

Linux下MySQL数据库的安全配置_第3张图片

2. mysql管理员root账号密码遗忘

方法一:

killall -TERM mysqld

mysqld_safe --skip-grant-tables &

mysql -u root

Linux下MySQL数据库的安全配置_第4张图片

进入数据库之后,就可以修改数据库管理员root的密码;

mysql>update user set password=password('123') where user='root' and host='localhost';

mysql> FLUSH PRIVILEGES;

MySQL> quit

重新启动MySQL,使用新密码登录;

Linux下MySQL数据库的安全配置_第5张图片

方法二:

修改/etc/my.cnf

在[Mysqld]下添加:

skip-grant-tables

Linux下MySQL数据库的安全配置_第6张图片

重启MySQL服务

Linux下MySQL数据库的安全配置_第7张图片

进入数据库之后,就可以修改数据库管理员root的密码;(如上)

mysql -u root

mysql>update user set password=password('123') where user='root' and host='localhost';

mysql> FLUSH PRIVILEGES;

MySQL> quit

重新启动MySQL,使用新密码登录(注:实验结束后将my.cnf中的跳过策略表注释掉)

Linux下MySQL数据库的安全配置_第8张图片

3. 管理数据库用户

方法一:

Linux下MySQL数据库的安全配置_第9张图片

mysql> INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv)     VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');

Linux下MySQL数据库的安全配置_第10张图片

方法二:

mysql> CREATE  USER  'user1'@'localhost'  IDENTIFIED  BY '123456';

Linux下MySQL数据库的安全配置_第11张图片

4. 用户授权

新用户授权(不存在的用户):

    mysql> GRANT 权限列表  ON  库或表  TO  '用户名'@'登录IP或域名'  IDENTIFIED  BY  '123456';

老用户授权:

    mysql> GRANT 权限列表  ON  库或表  TO  '用户名'@'登录IP或域名'

权限列表:

    all——所有权限

    select,insert,update,drop,delete,create等库或表:

    *.*——所有库,所有表   

登录IP或域名:

     %——表示没有限制,在任何主机都可以登录

     192.168.120.%——表示在192.168.120.0网段可以登录

(1)本地权限

mysql> GRANT  select  ON  fruitsdb.*  TO  'user2'@'localhost'  IDENTIFIED  BY  '123456';

Linux下MySQL数据库的安全配置_第12张图片

mysql>SHOW  GRANTS  FOR  'user2'@'localhost';

Linux下MySQL数据库的安全配置_第13张图片

mysql> CREATE  USER  'user3'@'localhost'  IDENTIFIED  BY '123456';

Linux下MySQL数据库的安全配置_第14张图片

mysql>SHOW  GRANTS  FOR  'user3'@'localhost';

Linux下MySQL数据库的安全配置_第15张图片

mysql -u user2 -p

mysql> SELECT * FROM fruitsdb.fruits;(验证权限)

mysql>quit;

Linux下MySQL数据库的安全配置_第16张图片

mysql -u  user3  -p

mysql> SELECT * FROM fruitsdb.fruits;(再次验证权限)

mysql>quit;

Linux下MySQL数据库的安全配置_第17张图片

(2)网络连接权限

mysql>GRANT all  ON  fruitsdb.*  TO  'user4'@'%' IDENTIFIED  BY  '123456';

Linux下MySQL数据库的安全配置_第18张图片

mysql>SHOW  GRANTS  FOR  'user4'@'%';

Linux下MySQL数据库的安全配置_第19张图片

从另一台Linux的Mysql客户端登录验证;

安装mysql客户端,并启动mysql服务;

Linux下MySQL数据库的安全配置_第20张图片

关掉服务器端的防火墙和禁用seLinux

在客户端进行登录验证;

mysql -h 192.168.5.116 -P 3306 -u wangwu -p123456

Linux下MySQL数据库的安全配置_第21张图片

mysql> use fruitsdb;

mysql> show tables

Linux下MySQL数据库的安全配置_第22张图片

mysql> SELECT  *  FROM  fruitsdb.fruits;

Linux下MySQL数据库的安全配置_第23张图片

mysql> CREATE TABLE tbserver (num INT NOT NULL);

mysql> INSERT INTO tbserver VALUES(6),(14),(11),(20);

mysql> select * from tbserver;

Linux下MySQL数据库的安全配置_第24张图片

mysql> delete from tbserver where num=6;

mysql> select * from tbserver;

Linux下MySQL数据库的安全配置_第25张图片

mysql> show tables;

mysql> drop table tbserver;

mysql> show tables;

mysql>quit;

Linux下MySQL数据库的安全配置_第26张图片

3)撤销权限

mysql>REVOKE  all  ON  fruitsdb.*  FROM  'user4'@'%';

mysql>SHOW GRANTS FORM 'user4'@'%';

Linux下MySQL数据库的安全配置_第27张图片

从另一台Linux的Mysql客户端登录验证!

Linux下MySQL数据库的安全配置_第28张图片

对fruitsdb库没有操作权限;

Linux下MySQL数据库的安全配置_第29张图片

你可能感兴趣的:(Linux)