zoukankan      html  css  js  c++  java
  • mysql.user表中Host为%的含义

    百度搜: 

    MySQL之权限管理(mysql.user表详解)

    连接:http://blog.csdn.net/zmx729618/article/details/78026497

    mysql.user表中Host为%的含义

      Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。
      而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。、
      这也就是为什么在开启远程连接的时候,大部分人都直接把Host改成%的缘故,为了省事。

     

    1:新增用户:

    注:MySQL数据库下user表中,Host和User为两个主键列(primary key),已经各版本下非空未设置默认字段。

    登录后,切换db:

    [sql] view plain copy
     
     
    1. mysql> use mysql;  
    2. Reading table information for completion of table and column names  
    3. You can turn off this feature to get a quicker startup with -A  
    4.   
    5. Database changed  

    新增用户:

    注:限制kaka用户的登陆ip为10.155.123.55,ip为随手写入,如果正确配置为您有效登陆ip,所有ip登陆,则设置Host为 '%'

    [sql] view plain copy
     
     
    1. mysql> INSERT INTO mysql.user(Host,User,Password) VALUES("10.155.123.55","kaka",PASSWORD("kaka123"));  

    在版本 5.6.27:

    [sql] view plain copy
     
     
    1. mysql> INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) VALUES("10.155.123.55","kaka",PASSWORD("kaka123"),"","","");  
    2. Query OK, 1 row affected (0.03 sec)  

    新增用户(全sql):

    [sql] view plain copy
     
     
    1. INSERT  INTO `user`(`Host`,`User`,`Password`,`Select_priv`,`Insert_priv`,`Update_priv`,`Delete_priv`,`Create_priv`,`Drop_priv`,`Reload_priv`,`Shutdown_priv`,`Process_priv`,`File_priv`,`Grant_priv`,`References_priv`,`Index_priv`,`Alter_priv`,`Show_db_priv`,`Super_priv`,`Create_tmp_table_priv`,`Lock_tables_priv`,`Execute_priv`,`Repl_slave_priv`,`Repl_client_priv`,`Create_view_priv`,`Show_view_priv`,`Create_routine_priv`,`Alter_routine_priv`,`Create_user_priv`,`Event_priv`,`Trigger_priv`,`Create_tablespace_priv`,`ssl_type`,`ssl_cipher`,`x509_issuer`,`x509_subject`,`max_questions`,`max_updates`,`max_connections`,`max_user_connections`,`plugin`,`authentication_string`,`password_expired`) VALUES ('%','root','*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password','','N');  

    新增用户完成,刷新mysql的系统权限相关表

    [sql] view plain copy
     
     
    1. mysql> flush privileges;  
    2. Query OK, 0 rows affected (0.00 sec)  

    设置遇到问题,请查看:MySQL配置和设置问题小结

    重启生效:

    [sql] view plain copy
     
     
    1. [root@Tony_ts_tian bin]# service mysqld restart  
    2. Shutting down MySQL.... SUCCESS!   
    3. Starting MySQL. SUCCESS!   

    查询用户,Host,User,Password:

    [sql] view plain copy
     
     
    1. mysql>  SELECT Host,User,Password FROM mysql.user;    
    2. +----------------+------+-------------------------------------------+  
    3. | Host           | User | Password                                  |  
    4. +----------------+------+-------------------------------------------+  
    5. | localhost      | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    6. | tony\_ts\_tian | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    7. | 127.0.0.1      | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    8. | ::1            | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    9. | 10.155.123.55  | kaka | *90B3D884FB6092549F244125549B77C000A0F9C6 |  
    10. | %              | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    11. +----------------+------+-------------------------------------------+  
    12. rows in set (0.00 sec)  
    
    

    2:修改信息,密码,类似可修改其他字段。

    [sql] view plain copy
     
     
    1. mysql> UPDATE `user` SET Password=PASSWORD("123456") WHERE Host='10.155.123.55' AND User='kaka';  
    2. Query OK, 1 row affected (0.02 sec)  
    3. Rows matched: 1  Changed: 1  Warnings: 0  
    4. mysql> flush privileges;  
    5. Query OK, 0 rows affected (0.00 sec)  
    6. mysql> SELECT Host,User,Password FROM `user`;  
    7. 前:  
    8. | 10.155.123.55  | kaka | *90B3D884FB6092549F244125549B77C000A0F9C6 |  
    9. 后:  
    10. | 10.155.123.55  | kaka | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |  

    3:删除用户:

    [sql] view plain copy
     
     
    1. mysql> DELETE FROM `user` WHERE Host='10.155.123.55' AND User='kaka';  
    2. Query OK, 1 row affected (0.00 sec)  
    3.   
    4. mysql> flush privileges;  
    5. Query OK, 0 rows affected (0.00 sec)  
    6.   
    7. mysql> SELECT Host,User,Password FROM `user`;  
    8. +----------------+------+-------------------------------------------+  
    9. | Host           | User | Password                                  |  
    10. +----------------+------+-------------------------------------------+  
    11. | localhost      | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    12. | tony\_ts\_tian | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    13. | 127.0.0.1      | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    14. | ::1            | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    15. | %              | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 |  
    16. +----------------+------+-------------------------------------------+  
    17. rows in set (0.00 sec)  

    4. 权限分配

    [plain] view plain copy
     
     
    1. GRANT语法:     
    2.    GRANT 权限 ON 数据库.* TO 用户名@'登录主机' IDENTIFIED BY '密码'  
    3. 权限:  
    4.    ALL,ALTER,CREATE,DROP,SELECT,UPDATE,DELETE  
    5.    新增用户:权限为USAGE,即为:"无权限",想要创建一个没有权限的用户时,可以指定USAGE  
    6. 数据库:  
    7.      *.*              表示所有库的所有表  
    8.      mylove.*         表示mylove库的所有表  
    9.      mylove.loves     表示mylove库的loves表   
    10. 用户名:  
    11.      MySQL的账户名  
    12. 登陆主机:  
    13.      允许登陆到MySQL Server的客户端ip  
    14.      '%'表示所有ip  
    15.      'localhost' 表示本机  
    16.      '10.155.123.55' 特定IP  
    17. 密码:  
    18.       MySQL的账户名对应的登陆密码  

    注: IDENTIFIED BY '密码',可选。

            GRANT会覆盖用户的部分信息,跟insert 、update执行功能一样。

    给用户kaka分配test数据库下user表的查询select权限:

    [sql] view plain copy
     
     
    1. mysql> GRANT SELECT ON test.user TO kaka@'10.155.123.55' IDENTIFIED BY '123456';  
    2. Query OK, 0 rows affected (0.00 sec)  
    3. mysql> flush privileges;  
    4. Query OK, 0 rows affected (0.00 sec)  
    5. mysql> show Grants for 'kaka'@'10.155.123.55';  
    6. +-----------------------------------------------------------------------------------------------------------------+  
    7. | Grants for kaka@10.155.123.55                                                                                   |  
    8. +-----------------------------------------------------------------------------------------------------------------+  
    9. GRANT USAGE ON *.* TO 'kaka'@'10.155.123.55' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |  
    10. GRANT SELECT ON `test`.`user` TO 'kaka'@'10.155.123.55'                                                         |  
    11. +-----------------------------------------------------------------------------------------------------------------+  
    12. rows in set (0.00 sec)  

    为了快速测试,我要把ip切回%,ip全访问:

    使用和测试:

  • 相关阅读:
    你是通过什么渠道获取一般人不知道的知识和信息的?
    用python写MapReduce函数——以WordCount为例
    准确率,召回率,F值,机器学习分类问题的评价指标
    【RS】AutoRec: Autoencoders Meet Collaborative Filtering
    2018 推荐系统总结
    关于协同过滤推荐系统札记
    【RS】Wide & Deep Learning for Recommender Systems
    NeuCF源码中用到的模块(函数)
    【RS】:论文《Neural Collaborative Filtering》的思路及模型框架
    Keras 使用过程问题汇总
  • 原文地址:https://www.cnblogs.com/libin6505/p/8268975.html
Copyright © 2011-2022 走看看