UPDATE user与 GRANT IDENTIFIED区别

来源:互联网 发布:qq数据库营销 编辑:程序博客网 时间:2024/05/14 18:44

原地址:http://blog.chinaunix.net/uid-20344928-id-2691503.html

mysql的用户信息是保存在mysq.user表里,因此,修改mysql用户密码的方法可以分为两类:

 
一、直接编辑user表
 
二、通过工具mysql内置命令实现对user表的修改
 
先说第一类,即通过UPDATE语句来修改password字段,从而实现修改用户密码的目的。具体命令如下:
 
mysql> UPDATE user SET password=PASSWORD("123") WHERE user='system@localhost';
mysql> FLUSH PRIVILEGES;
 
执行此命令后,系统会将mysql用户system@localhost的密码修改为123,并通过PASSWORD()函数将123转换为密文,然后保存在user表中。
 
第二类的具体实现方式就很多了,如GRANT\SET PASSWORD等。GRANT命令如下:
 
GRANT ALL ON mail.* TO system@localhost IDENTIFIED BY "456";
 
执行此命令后,系统会将mysql用户system@localhost的密码修改为456,并赋予此用户对数据库mail的DBA权限。
 
综上,可以看出,UPDATE user与 GRANT IDENTIFIED区别有两点:
 
1、Update user修改的密码需要FLUSH PRIVILEGES才能生效;GRANT IDENTIFIED修改/指定的密码不需要需要FLUSH PRIVILEGES。
 
2、Update user只对用户的密码进行操作,对用户权限(select\delete等)没有影响;GRANT IDENTIFIED修改/指定用户密码的同时,也赋予了该用户的权限。
0 0
原创粉丝点击