外观
MySQL数据库安全常见问题
权限更改何时生效
MySQL服务器启动及使用GRANT和REVOKE语句时,服务器会自动读取GRANT表。但是,既然知道这些权限保存的位置以及它们是如何保存的,就可以手动修改它们。当手动更新权限时,MySQL服务器不会注意到权限已修改,必须向服务器指出已经对权限进行了修改,有3种方法可以实现这个任务。
可以在MySQL命令提示符下(必须已管理员身份运行)输入以下命令。
flush privileges;这是更新权限最常用的方法。或者也可以在操作系统中运行。
mysqladmin flush-privileges或者是
mysqladmin reload设置账户密码
- 可以用mysqladmin命令在DOS命令窗口中指定密码。
mysqladmin -u user_name -p "oldpwd" -h host_name password "newpwd"mysqladmin命令重设服务器为host_name、用户名为user_name的用户的密码、oldpwd为旧密码,newpwd为新密码。
- 通过SET PASSWORD命令设置用户的密码。
SET PASSWORD FOR 'user_name'@'host_name' = 'newpwd';只有以root用户(可以更新MySQL数据库的用户)的身份登录,才可以修改其他用户的密码。若没有以匿名用户连接,省略for子句可以修改自己的密码。
SET PASSWORD = '123456';- 在全局级别下使用1GRANT USAGE语句(在*.*)指定某个账户的密码,而不影响账户当前的权限。
GRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY 'newpwd;'使密码更安全
- 在管理级别,切记不能将mysql.user表的访问权限授予任何非管理账户。
- 采用下面的命令登录MySQL,以隐藏密码。
mysql -u user -p
Enter password:******- 若要在非交互方式下运行一个管理脚本调用一个客户端,就没有从终端输入密码的机会。其最安全的方法是让客户端程序提示输入密码或在适当的选项文件中指定密码。