辛星解读mysql的用户管理

辛星解读mysql的用户管理

大家好,又见面了,我是全栈君。

     可能做开发的多半不太关注这方面,可是要说到做运维。那就不能不关注了。由于我们都知道,root的权限太大了。不是随便能用的。我们平时最好用一些比較低的权限的用户。这样会让我们的安全性大大提高,也能防止我们寻常中由于误操作而造成不必要的损失。

      首先我们须要查看mysql中的全部账户,我们在mysql数据库中的user表中查看信息就可以。可是呢。因为我们直接select * from user的话会显示非常多的和权限相关的信息,极大的影响我们的阅读。因此我们这里仅仅查看三个比較重要的字段,以下是我的机器中的操作演示:

mysql>   select host,user,password from mysql.user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| ::1       | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)

     然后我们创建一个用户,这里我们须要制定username和连接的地址,也就是一样的username(user)。不一样的host。也会被当做不一样的对象,我们能够使用通配符。当中%表示匹配不论什么多个字符,而-表示匹配一个字符。以下我创建一个用户test。并且制定password为xin,并且能够从不论什么主机登录。看我操作:

mysql> create user 'test'@'%' identified by 'xin';
Query OK, 0 rows affected (0.23 sec)

    这里我们用该用户登录的信息显演示样例如以下:

C:\Users\Administrator>mysql -u test -pxin
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.7.3-m13 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

比方我们此时想查看一下user信息都有什么。结果却发现:

mysql> select host,user,password from mysql.user;
ERROR 1142 (42000): SELECT command denied to user 'test'@'localhost' for table 'user'
mysql>

也就是我们这里并不用有select该user表的权限。那么就会涉及到权限管理了,我们这里能够用show grants来查看一下自己的权限:

mysql> show grants;
+-----------------------------------------------------------------------------------------------------+
| Grants for test@%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*76995602B7611FA37648852F235D6ECB29D844E2' |
+-----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


      因为这里的test用户的权限还是非常小的。我们还是使用root用户登录,然后此时我们看一下用户表,就发现多了一个新用户:

mysql> select host,user,password from mysql.user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| ::1       | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| %         | test | *76995602B7611FA37648852F235D6ECB29D844E2 |
+-----------+------+-------------------------------------------+
4 rows in set (0.00 sec)

       root用户具有至高无上的权限。因此他能够改动password,第一种方式就是使用set  password语句,比方我们给刚才的新用户设置一个password。我们能够使用例如以下命令:

mysql> set  password for 'test'@'%' = password('qian');
Query OK, 0 rows affected (0.00 sec)

     此时我们就能够使用test这个用户登录了,以下看我代码:

C:\Users\Administrator>mysql -u test -pqian
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.7.3-m13 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

   事实上我们还能够直接使用update语句来改动user这个表,可是我们须要使用flush privileges;来让它马上生效:

mysql> update mysql.user set password = password('nan') where user = 'test';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

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

   然后我们就能够用’nan‘这个password登录了,我这里就不给出演示代码了,毕竟非常easy的操作,我是辛星。求支持。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115765.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月30日 下午10:00
下一篇 2022年1月30日 下午10:00


相关推荐

  • 云服务器带外管理-从IPMI到RedFish

    云服务器带外管理-从IPMI到RedFish想当年 其实就是前年 硕士期间给导师上架服务器到学校机房 其实主要就是 EDA 服务器 用于跑 IC 设计软件 是第一次面对占地半个楼层的机房 之前的眼界也就是几十台机器的网吧 那种感觉 想象一下 你来到一个钢铁森林 Funcy 的灯光闪烁 你正想欣赏这充满科技感的奇异景象 忽然同时有几千只蝉在你的四周聒噪 仿佛你是个大号母蝉 那声音就像有两架黑鹰直升飞机武值 10 在你身边起飞 一开始是有新鲜感的 后面由于实验室经常有人使用 root 命令去 shutdown 机器 虽然给大家都分配了账户 但是看起来大家都想对服务器有满

    2026年3月18日
    2
  • Java面试题目,Java中级面试题及答案整理(1)

    Java面试题目,Java中级面试题及答案整理(1)(5)GlobalSession:这个只在portal应用中有用,给每一个globalhttpsession新建一个Bean实例。5、Spring事务传播行为所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有

    2022年8月31日
    6
  • JSP与Servlet的区别「建议收藏」

    JSP与Servlet的区别「建议收藏」JSP与Servlet的区别一、最重要的一句话!!jsp就是在html里面写java代码,servlet就是在java里面写html代码…其实jsp经过容器解释之后就是servlet.只是我们自己写代码的时候尽量能让它们各司其职,jsp更注重前端显示,servlet更注重模型和业务逻辑。不要写出万能的jsp或servlet来即可。二、对比1)什么是Servlet?Servlet其实就是一个遵循Servlet开发的java类。Servlet是由服务器调用的,运行在服务器端。2)为什么要用到Serv

    2022年6月18日
    27
  • 匈牙利命名法[通俗易懂]

    匈牙利命名法[通俗易懂]匈牙利命名法:广泛应用于象MicrosoftWindows这样的环境中。Windows编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的Microsoft程序员查

    2022年7月2日
    37
  • ideatomcat日志乱码_tomcat 日志

    ideatomcat日志乱码_tomcat 日志1、tomacat日志有三个地方,分布时Output(控制台)、TomcatLocalhostLog(tomcat本地日志)、TomcatCatalinaLog。启动日志和大部分报错日志、普通日志都在output打印;有些错误日志,在TomcatLocalhostLog。三个日志显示区,都可能出现乱码现象。2、解决方案一:首先,找到本地tomcat的conf目录下的logging.properties,这个文件中有5个编码的位置1)对于控制台output报错的情况,将下图位置

    2026年4月14日
    4
  • tcpdump抓包命令详解_tcpdump抓udp包命令详解

    tcpdump抓包命令详解_tcpdump抓udp包命令详解linux抓包-tcpdump命令:enp4s0f0—ifconfig—>网卡名称-s0—->不限制抓包的大小port25228—->只抓取服务器上25228端口的数据流量-whk2.pcap—>保存的文件名称-v—>显示抓包的大小数字

    2022年8月20日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号