MYSQL数据库密码字段临时加密问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL数据库密码字段临时加密问题?相关的知识,希望对你有一定的参考价值。

我的网站数据库要交给另一个人操作一下,别的不怕,我比较担心用户名密码泄露,用户密码是MD5加密的32位的字符串。

有什么简单的方法,可以临时加密一下密码字段,之后可以再还原回来。越简便越好。
我是一个论坛,十几万注册用户,我知道MD5是加密的,但还是有被破解出来的可能性。

看楼主的意思,应该是担心用户信息被泄露。但不知道另一个人操作时是否能操作当前用户信息所在的数据库,如果不操作,可以设置数据库访问权限。
已经加密过的用户密码,看MD5加密的复杂度,要还原的可能性还是极低的。
确保操作期间所有的用户不再登录的情况下,可以先备份该表,然后临时加密该表的密码字段。
可以用update 表名 set pwd = password(pwd) 来加密该字段。注:password()函数用的是不可逆的加密算法。等人家用完,你再还原该表就行了。
参考技术A 你是指mysql用户密码还是数据库表里用户资料的密码?

mysql用户密码本身就加密过的,数据库表里的用户密码加密还得通过应用程序来加密和解决,算法完全可以由你自己来写。
参考技术B 你给他操作的时候先修改密码,他操作结束后再改回自己的不就得了

yum安装mysql后root用户的临时密码

1.查看root用户临时随机密码

yum 安装mysql后,无法通过空密码登录数据库,如下:

1 [[email protected]123 mysql]# mysql -u root -p
2 Enter password: 
3 ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)

 

查找后,原来为了增加数据库的安全性,在安装时会为root用户生成一个临时的随机密码,存放在/var/log/mysqld.log 中。root用户的临时密码查看方法如下(红色标注部分就是其临时密码):

1 [[email protected]123 mysql]# grep password /var/log/mysqld.log |head -n 1
2 2017-06-17T02:01:01.026946Z 1 [Note] A temporary password is generated for [email protected]: XqWlxlV3p.a8
3 [[email protected] mysql]# mysql -u root -p
4 Enter password: 
5 Welcome to the MySQL monitor.  Commands end with ; or \g.
6 Your MySQL connection id is 31169
7 Server version: 5.7.18

2.修改root用户密码

使用临时密码登录数据库后,mysql会提示你修改临时密码,否则无法使用,如下:

1 mysql> show databases;
2 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

使用ALTER USER命令修改用户:(本人未使用,在此附上链接,以便以后方便查看)

http://blog.csdn.net/ziwen00/article/details/8460754

ALTER USER格式如下:

  alter user [用户名] indentified by [新密码];

修改root的密码,使用了如下方法,三步完成密码密码的更改:

mysql> set password(123455);       #红色部分是新密码
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
#提示信息:密码不适应当前的密码策略的要求,具体的原理不在这里阐述,可以参见安装MySQL5.6新建用户并创建密码时总是提示密码不符合要求:ERROR 1819 (HY000): Your password does NOT..解决
#解决方法:这里我们可以参考为root用户生成的密码的格式【大小写字母+数字——特殊符号】
mysql> ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)

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

使用新密码可以登录到数据库。

3.配置数据库的远程连接

1 mysql>CREATE USER root@% IDENTIFIED BY 您的密码;
2 # 增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址
3    
4 mysql>GRANT ALL PRIVILEGES ON * . * TO root@% IDENTIFIED BY 你的密码 WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
5 #给新添加的root增加权限

 

 

 

  

 











以上是关于MYSQL数据库密码字段临时加密问题?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL表中的密码字段类型问题

如何给MySQL数据库的表中的密码字段设置长度限制?

mysql 中用户默认密码加密问题

数据库如何实现字段加密

mysql对数据库字段存储的数据加密

mysql 数据库 实战