辛星解读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)

然后我们创建一个用户,这里我们需要制定用户名和连接的地址,也就是一样的用户名(user),不一样的host,也会被当做不一样的对象,我们可以使用通配符,其中%表示匹配任何多个字符,而-表示匹配一个字符。下面我创建一个用户test,并且制定密码为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 [email protected]%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| 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用户具有至高无上的权限,因此他可以修改密码,第一种方式就是使用set  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‘这个密码登录了,我这里就不给出演示代码了,毕竟很简单的操作,我是辛星,求支持。

时间: 2024-10-06 06:49:10

辛星解读mysql的用户管理的相关文章

辛星解读mysql中的MyISAM引擎

很多以前的教科书上都是写的MyISAM是mysql的默认存储引擎,其实自从mysql5.5开始,默认存储引擎就已经改变成为InnoDB了,由于InnoDB在很多方面有着不可替代的功能,因此,很多人喜欢研究InnoDB也在情理之中,我也很喜欢InnoDB.但是呢,对于MyISAM,就跟着辛星辛博士来认识一下吧. 第一点就是MyISAM不支持事务和外键,也正是基于这一点,很多人不喜欢MyISAM.但是MyISAM并不着急改变自己,因为这个引擎的重心是性能,而不是功能,不可否认,MyISAM的性能是非

辛星解读mysql中的存储过程的优劣

我们常用的SQL语句在执行的时候需要首先进行编译,然后执行,而存储过程则是一组为了完成特定功能的SQL语句集,它直接编译好了存储在数据库中,用户通过指定存储过程的名字即可调用该存储过程. 存储过程的优点主要包括以下几点: 第一点,性能提高.这是相对于不适用存储过程来说的,因为存储过程在创建的时候就编译好了,而后每次调用都不会再次编译,这相对于传统的SQL语句中每次调用都需要编译的情况来说,性能提高了何止一点两点. 第二点,重用性强.存储过程使用名字即可使用,也就是传说中的"一次编写,随便调用&q

2014年辛星解读Javascript之DOM快速入门

在Javascript的知识中,有一个所谓的DOM,即文档对象模型,我们可以通过它来访问HTML文档的元素,当网页被加载的时候,浏览器会去创建DOM,有了这个DOM,我们可以使用Javascript去改变页面中HTML元素和属性,改变CSS样式,能够对页面中的事件作出响应. 首先就是查找一个HTML元素,我们可以通过三种方式来做到,即通过id.标签名和类名,通过id是使用getElementById方法,它是doucument的一个方法,通过标签名则可以使用getElementsByTagNam

2014年辛星解读Javascript之用DOM动态操纵HTML元素

关于DOM,我们了解了可以用DOM操纵HTML的一些属性和样式,还可以为HTML元素绑定事件等等,那么接下来,我们将涉及到用DOM来动态的创建.删除HTML等一些操作,我的核心思路还是重实战,因此,代码示例是肯定少不了的. 不过在使用DOM动态操纵HTML元素之前,我们还是先了解一下DOM树,下面是我从网上找的一个DOM树的图片,它的截图如下: 如果大家学习过"树"这种数据结构,就会很好理解,一个父节点可以包含N个子节点,这些子节点可能是div.p等标签,也可以是属性,还可以是中间的文

辛星解读之php中的重点函数第一节之数组函数

这里我已经写好它的pdf版本了,比本博客更加适合阅读.首先说一下它在百度网盘的下载地址把:百度网盘下载 ,如果左边连接跪了,可以在浏览器中输入:http://pan.baidu.com/s/1qW5AYzM 来下载.然后说一下它在csdn的下载地址,是免积分的奥,下载地址:csdn资源下载处 ,如果连接不起作用,可以在浏览器输入:http://download.csdn.net/detail/xinguimeng/7697309  来手动下载. 好,我们知道php中函数还是很多的,正是这些函数为

2014年辛星解读CSS第八节 使用背景图片

这应该是系统CSS的教程的最后一节了,为什么呢,因为到这一节,我感觉基础知识就已经讲完了,接下来的就是无穷的实战,而实战是很难用知识去讲出来的,靠的是积累,拼的是经验,这些都不是讲出来的. 好,我们下面来说一下用CSS添加背景图片的方式把,它在background属性中指定,可以用url("图片路径")的方式来指定背景图片,如果是repeat,则图片在横向和纵向上平铺,如果是no-repeat,则背景图像不会平铺,只显示一次,如果是repeat-x,那么就在水平方向平铺,如果是repe

辛星让mysql跑的更快第一节之优化的方向和数据库建模

最近计划写一套书目,也就是关于mysql的优化的,那么首先在博客上写写,然后整理成pdf的文档的形式,当然也期待各位的关注了.对于mysql的优化是一个比较大的话题,可优化的地方也很多,大致想了一下,可以从这些地方下手. 首先就是硬件层次,包括选择合适的操作系统.选择合适的硬件,然后就是源码层次,不过虽然mysql是开源的,但是能够修改其源代码的公司虽然不少,但是也没有那么多,但是我们可以选择更加合适的编译器重新编译其源代码,然后就是设计到表的设计,也就数据库建模. 其次可以考虑使用一些其他技术

linux下mysql的用户管理及访问问题

1.mysql的安装配置 linux下有一个很神奇的东西叫yum,只要有源,用yum来安装是一件非常容易的事,什么都不用管,它会为你解决好一些软件依赖的问题.一键安装mysql: [[email protected] ~]# yum install mysql-server mysql-devel 安装完成后我们就可以使用mysql了: [[email protected] ~]# /etc/init.d/mysqld start Starting mysqld: [ OK ] [[email 

辛星让mysql跑得更快第二节之索引上部分

如果把我们的数据库信息当做一本书或者一个字典,那么索引可以理解为它的目录,如果我们创建一个优秀的目录,那么我们检索信息就会快得多,如果我们创建一个渣渣索引,也有可能拖垮整个系统. 索引我们分为四类,通常分为四大类型,即主键索引.全文索引.唯一索引.普通索引,这是按照索引的类型来分的.所谓主键索引,那就是当我们创建一张表的时候,如果我们指定了一个主键,那么它就自动成为主键索引,比如SQL语句如下(这里的id就自动成为了主键索引): create table xin(id int unsigned