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

标签 mysql mysql-management

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

按照网上的建议,以root身份发布

grant all on *.* to new_user;

它有效,但安全方面一团糟,所以发布

revoke all on *.* from new_user;

现在 new_user 可以仍然连接,但安全性与 mysql 管理中设置的一样安全

对我来说这完全是骗人的。到底发生了什么,您如何真正启用登录?

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

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

最佳答案

那是因为当你第一次使用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;:你会看到新用户已创建!!

关于mysql - 在mysql中,设置连接mysql命令行的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318774/

相关文章:

mysql - 需要帮助提高 sql 查询性能

php - 是否可以从 laravel 迁移中更改 mysql DB 编码字符集?

php - "PDO exception: php_network_getaddresses: getaddrinfo failed"更改 DNS 解析器后,数据库在 AWS 上运行

MySQL安装脚本

用于网上商店的 MySQL 数据库结构

mysql - 减少 ubuntu@aws 微实例上 mysql 的内存消耗

php - MySQL 性能 - 表数对比。行数

php - 如何在内连接 MYSQL 查询中使用 PHP 变量?

MySQL - 帮助连接两个表

MySql - 复制监控工具