使初始 MySQL 账户安全,为匿名账户指定密码或删掉匿名账户

转载自:http://www.oicto.com/mysql-safe-anonymous/

要想为匿名账户指定密码,可以使用 SET PASSWORDUPDATE

在两种情况中,一定要使用 PASSWORD() 函数为密码加密。


Windows 中使用 PASSWORD 的方法:

shell> mysql -u root

mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd');

mysql> SET PASSWORD FOR ''@'%' = PASSWORD('newpwd');


Unix 中使用 PASSWORD 的方法:

shell> mysql -u root

mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd');

mysql> SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd');

用服务器主机名替换第二个 SET PASSWORD 语句中的 host_name。

这是指定的 use r表中的 root non-localhost 记录的 Host 列名。

如果你不知道是哪个主机名,在 SET PASSWORD 之前执行下面的语句:

mysql> SELECT Host, User FROM mysql.user;

查找在 User 列有 root 和在 Host 列没有 localhost 的记录。

然后在第二个 SET PASSWORD 语句中使用该 Host 值。


为匿名账户指定密码的另一种方法是使用 UPDATE 直接修改用户表。

用 root 连接服务器,运行 UPDATE 语句为相应 user 表记录的 Password 列指定一个值。

在 Windows 和 Unix 中的过程是相同的。下面的 UPDATE 语句同时为两个匿名账户指定密码:

shell> mysql -u root

mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = '';

mysql> FLUSH PRIVILEGES;

在 user 表中直接使用 UPDATE 更新密码后,必须让服务器用 FLUSH PRIVILEGES 重新读授权表。

否则,重新启动服务器前,不会使用更改。


如果你宁愿删除匿名账户,操作方法是:

shell> mysql -u root

mysql> DELETE FROM mysql.user WHERE User = '';

mysql> FLUSH PRIVILEGES;

可以在 Windows 和 Unix 中使用 DELETE 语句。

在 Windows 中,如果你只想删掉具有与 root 相同权限的匿名账户,方法为:

shell> mysql -u root

mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';

mysql> FLUSH PRIVILEGES;

该账户允许匿名访问,但是拥有全部的权限,因此删掉它可以提高安全。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值