在mysql中,设置连接mysql命令行的权限

时间:2011-09-06 10:57:58

标签: mysql mysql-management

通过mysql admin创建用户,但无法登录mysql命令行

按照root发布的在线建议

grant all on *.* to new_user;

它有效,但安全方面很糟糕,所以发布了

revoke all on *.* from new_user;

现在new_user可以仍然连接,但安全性是正确的,如mysql admin

中所设置的那样 对我来说,这是彻底的焦点。真正发生了什么,你如何真正启用登录?

这似乎是一个MySQL管理员问题(感谢@marco)。如果在mysql命令行中发出相同的GRANT,则用户可以登录;但是授权是在Administrator中发布的,用户无法登录。

正如@marco指出的那样,任何访问都将授予对用户的mysql登录访问权限,例如,SELECT权限 - 但是需要在msql命令行中输入。

1 个答案:

答案 0 :(得分:1)

那是因为当你第一次使用GRANT时,会自动创建用户;当您撤销权限时,用户仍然是...
检查此link

首先,您应该只为您的用户提供他真正需要的特权 第二:让用户只能访问他应该看到/工作的数据库或表 例如:

GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'jeffrey'@'localhost';

GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost' 
IDENTIFIED BY PASSWORD 'sdsd';

<强>编辑:
只是为了证明我在说什么:
进入mysql控制台(mysql -u root -p)并输入

USE mysql;
SELECT * FROM user;

你会看到里面有用户MySql 那么,现在请对不存在的用户使用GRANT。然后重复SELECT * FROM user;:你会看到新用户创建!!