码迷,mamicode.com
首页 > 数据库 > 详细

mysql安全机制

时间:2020-05-03 21:44:56      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:mysql用户   ali   cal   ide   grant   value   password   语句   creat   

1、mysql安全机制
1>mysql权限表
  mysql.user    Global level
  用户字段
  权限字段
  安全字段
  资源控制字段
  mysql.db、mysql.host  Database level
  用户字段
  权限字段
  mysql.tables_priv    Table level
  mysql.columns_priv    Column level
  mysql.procs_priv

2>MySQL用户管理
(1)登录和退出MySQL

mysql -h192.168.129.128 -P 3306 -u root -p123 mysql -e ‘select user,host from user‘
  -h 指定主机名
  -P MySQL服务器端口
  -u 指定用户名
  -p 指定登录密码
    此处mysql为指定登录的数据库
  -e 接SQL语句

 (2)创建用户
  方法一:CREATE USER语句创建

mysql> create user user1@‘localhost‘ identified by ‘123456‘;

   方法二: INSERT语句创建

mysql> insert into mysql.user(user,host,password) values
    -> (‘user2‘,‘localhost‘,password(‘123456‘));
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> flush privileges;    //flush privileges刷新MySQL的系统权限相关表
Query OK, 0 rows affected (0.00 sec)

   方法三: GRANT语句创建

mysql> grant select on *.* to user3@‘localhost‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 (3)删除用户
  方法一:DROP USER语句删除

mysql> drop user user1@‘localhost‘;
Query OK, 0 rows affected (0.00 sec)

  方法二:DELETE语句删除

mysql> delete from mysql.user where user=‘user2‘ and host=‘localhost‘;
Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 (4)修改用户密码
  root修改自己密码:
  方法一:

[root@centos6 ~]# mysqladmin -uroot -p123456 password ‘new_password‘    //123456为旧密码

  方法二:

mysql> update mysql.user set password=password(‘111111‘)
    -> where user=‘root‘ and host=‘localhost‘;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  方法三:

mysql> set password=password(‘123456‘);
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  root修改其他用户密码:
  方法一:

mysql> set password for user3@‘localhost‘=password(‘111111‘);    //111111为新密码
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  方法二:

mysql> update mysql.user set password=password(‘123456‘)
    -> where user=‘user3‘ and host=‘localhost‘;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  普通用户修改自己密码:
  方法一:

mysql> set password=password(‘new_password‘);

   方法二:

mysqladmin -uuser -p123 password ‘new_password‘    //123为旧密码

3>mysql权限管理
  权限应用的顺序:
    user (Y|N) ==> db ==> tables_priv ==> columns_priv
  语法格式:

语法格式:
grant 权限列表 on 库名.表名 to 用户名@‘客户端主机‘ [identified by ‘密码‘ with option参数];
 ==权限列表        all        所有权限(不包括授权权限)
           select,update
 ==数据库.表名       *.*       所有库下的所有表         Global level              web.* web    库下的所有表           Database level             web.stu_info   web库下的stu_info表        Table level         SELECT (col1), INSERT (col1,col2) ON mydb.mytbl  Column level
 ==客户端主机        %           所有主机             192.168.2.%    192.168.2.0网段的所有主机             192.168.2.168 指定主机              localhost       指定主机

  with_option参数

GRANT OPTION: 授权选项
MAX_QUERIES_PER_HOUR: 定义每小时允许执行的查询数
MAX_UPDATES_PER_HOUR: 定义每小时允许执行的更新数
MAX_CONNECTIONS_PER_HOUR: 定义每小时可以建立的连接数
MAX_USER_CONNECTIONS: 定义单个用户同时可以建立的连接数

 

 

 

 

  Grant示例:

mysql> grant all on *.* to user1@‘localhost‘ identified by ‘localhost‘;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to user2@‘localhost‘ identified by ‘localhost‘ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on bss.* to user3@‘localhost‘ identified by ‘localhost‘;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on bss.user to user4@‘localhost‘ identified by ‘localhost‘;
Query OK, 0 rows affected (0.00 sec)

  回收权限REVOKE
  查看权限

mysql> show grants\G
mysql> show grants for user1@‘localhost‘\G

  回收权限REVOKE
  语法:

REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
示例:
REVOKE DELETE ON *.* FROM USER1@’%’;           //回收部分权限
REVOKE ALL PRIVILEGES ON *.* FROM USER2@’%’;        //回收所有权限
# REVOKE ALL PRIVILEGES,GRANT OPTION ON *.* FROM ‘USER2‘@‘%‘;

 


 

mysql安全机制

标签:mysql用户   ali   cal   ide   grant   value   password   语句   creat   

原文地址:https://www.cnblogs.com/zyybky/p/12362646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!