百度搜:

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:

  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. Database changed

新增用户:

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

  1. mysql> INSERT INTO mysql.user(Host,User,Password) VALUES("10.155.123.55","kaka",PASSWORD("kaka123"));

在版本 5.6.27:

  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):

  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的系统权限相关表

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

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

重启生效:

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

查询用户,Host,User,Password:

  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. 6 rows in set (0.00 sec)

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

  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:删除用户:

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

4. 权限分配

  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权限:

  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. 2 rows in set (0.00 sec)

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

使用和测试:

mysql.user表中Host为%的含义的更多相关文章

  1. mysql,user表中各字段的含义

    1.查询user表 select * from mysql.user 2.修改用户密码 ALTER user ' 3.user表中各字段的含义 Select_priv:用户可以通过SELECT命令选择 ...

  2. MySQL/MariaDB学习笔记——mysql.user表中存在多个root用户问题理解

    mysql.user表中存在多个root用户问题 问题描述:使用 SELECT host,user FROM mysql.user 发现mysql.user表中存在三个root用户,如下 持着对中几个 ...

  3. mysql向表中某字段后追加一段字符串:

    mysql向表中某字段后追加一段字符串:update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串update table_n ...

  4. 在MySQL向表中插入中文时,出现:incorrect string value 错误

    在MySQL向表中插入中文时,出现:incorrect string value 错误,是由于字符集不支持中文.解决办法是将字符集改为GBK,或UTF-8.      一.修改数据库的默认字符集   ...

  5. (转)MySQL数据表中带LIKE的字符匹配查询

    MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56    百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...

  6. mysql删除表中的记录

    大家都知道,在MySQL中删除一个表中的记录有两种方法,一种是DELETE FROM TABLENAME WHERE... , 还有一种是TRUNCATE TABLE TABLENAME. DELET ...

  7. 将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式

    https://blog.csdn.net/niityzu/article/details/45190787 交通流的数据分析,需求是对于海量的城市交通数据,需要使用MapReduce清洗后导入到HB ...

  8. 如何使用MySQL一个表中的字段更新另一个表中字段

    [本文出自:https://www.jb51.net/article/150323.htm] 这篇文章主要介绍了如何使用MySQL一个表中的字段更新另一个表中字段,需要的朋友可以参考下 1,修改1列 ...

  9. mysql向表中某字段前后追加一段字符串 concat(), trim(), ltrim(), rtrim(), repeat()

    1.mysql向表中某字段后面追加一段字符串:update table_name set field=CONCAT(field, '分隔符', str);//'分隔符',可以为空,也可以省略updat ...

随机推荐

  1. Mysql读写分离方案-Amoeba环境部署记录

    Mysql的读写分离可以使用MySQL Proxy,也可以使用Amoeba.Amoeba(变形虫)项目是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项 ...

  2. VC++6.0的使用感想

    VC++6.0是我接触的第一款编程软件,一直以来都是使用这款软件来完成程序的编写,调试,运行.一直以来都是用C语言编写代码.而VC++6.0窗口简洁明了,占用资源少,上手容易,个人表示很喜欢. VC+ ...

  3. Linux内核分析 笔记六 进程的描述和进程的创建 ——by王玥

    一.知识点总结 (一)进程的描述 1.操作系统内核里有三大功能: 进程管理 内存管理 文件系统 2.进程描述符:task_struct 2.进程描述符——struct task_struct 1. p ...

  4. ELF分析 实践

    分析ELF文件: 首先编写一个.c文件,并使用gcc -c xx.c -o xx.o 对其进行编译. 我在这个实践中是ELF_1.o文件. 接下来输入ls -l ELF_1.o 查看重定位文件的信息. ...

  5. 广商博客冲刺第六七天new

    第四五天沖刺傳送門 第一版的網頁已經放到 云服務器(估計快到期了) 傳送門. (不怎么會玩服務器啊..求指教..目前問題如下: 1.我的電腦mysql密碼跟服務器的密碼不一樣..上傳的時候要把代碼里面 ...

  6. 第二个spring,第一天

    陈志棚:成绩的统筹 李天麟:界面音乐 徐侃:代码算法 由于队友们都回家了,只有我在努力的写代码...

  7. BugPhobia进阶篇章:功能规格说明书

    0x01 :特别鸣谢 首先特别鸣谢<构建之法>中并没有给出固定化格式的功能规格说明书的样例,因此在此次的说明书中将尽可能用生动形象的例子展示软件交互阐释 因此受到它本身的启发,此次团队功能 ...

  8. Delphi7通过superobject解析JSON

    1.通过delphi程序访问PHP事先写好的webservice(查询功能),webservice返回json格式数据. 2.通过superobject读取json数据 得到效果如下: //深层级的访 ...

  9. Windows平台下面Oracle11.2.0.1 升级Oracle11.2.0.4 的简单步骤

    1. 首先查看数据库的版本: 2. ESXi 上面的虚拟机挂在 oracle11.2.0.4的 iso磁盘 3. 执行set 进行升级 4. 安装选项进行选择 升级现有的数据库 5. 注意安装位置必须 ...

  10. socketserver及相关的类 (处理socket服务端)+ event事件的使用

    编写简单的套接字服务器并不难,然而,如果要创建的并非简单服务器,还要求助于服务器模块. 模块SocketServer是标准库提供的服务器框架的基石,这个框架包括好多服务器,他们基本服务器的基础上添加了 ...