相关疑难解决方法(0)

MySQL:为什么 mysql.db 中有“测试”条目?

最近,我发布了一个关于 mysql.db 的问题的答案

然后,我开始想我应该问每个人这个问题:

多年来,我一直注意到在安装 MySQL 5.0+ 时,mysql.db填充了两个条目,允许匿名用户访问测试数据库。

您可以通过运行此查询来查看它:

mysql> select * from mysql.db where SUBSTR(db,1,4) = 'test'\G
*************************** 1. row ***************************
                 Host: %
                   Db: test
                 User:
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: N
         Execute_priv: N
*************************** 2. row ***************************
                 Host: %
                   Db: test\_%
                 User:
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y …
Run Code Online (Sandbox Code Playgroud)

mysql security

37
推荐指数
1
解决办法
8597
查看次数

mysql.db 表有什么用?

与我的MySQL 问题相关

我在 mysql.user 中有一个具有 USAGE 权限的用户,但在 mysql.db 中该用户具有选择、插入、更新、删除。这样用户就可以成功查询数据库。

我找不到有关此 mysql.db 如何工作的任何信息,是否类似于某种缓存权限?mysqld 重启会刷新它吗?

mysql> show grants for user@'xx.xx.xx.%';
+-------------------------------------------------------------------------------------------------------------------------------+ 
| Grants for user@xx.xx.xx.%                                      |
+-------------------------------------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'user'@'xx.xx.xx.%' IDENTIFIED BY PASSWORD 'xxx' REQUIRE SSL |



 mysql> select host,db,user, select_priv,update_priv,delete_priv  from
 mysql.db where  user='user'; 
 | host         | db   | user    | select_priv | update_priv |  delete_priv | 
 | xx.xx.xx.1   | myDB | user    | Y           | Y           | Y
Run Code Online (Sandbox Code Playgroud)

mysql

6
推荐指数
1
解决办法
1万
查看次数

mysql用户被删除

我在 5.1.52 中有一个带有 mysql 的新 centos 6.2。然后我看到两个空的用户名,然后我删除了它,然后我看到 3 个 root 用户删除了它,并创建了一个这样的 CREATE USER 'root'@'%' IDENTIFIED BY ' ** ';。但是,当我现在以 root 身份进入我的 phpMyAdmin 时,我无法创建新数据库。我在这里做错了什么?

mysql

5
推荐指数
1
解决办法
1万
查看次数

只有“授予使用权”,但仍然可以选择、删除、创建?

我有一个 mysql 用户(我将称之为)“user5”,他在“show grants”的输出中只有“grant usage”(即没有特权),但仍然可以对数据库“app_db”进行选择(这就是我想要,但我确实理解它是如何拥有这种特权的)。没有匿名用户。user5 如何通过这种配置使用其数据库?

以 user5 登录时:

mysql> show grants;
+--------------------------------------------------------------------------------------------------------------+
| Grants for user5@10.14.%                                                                                   |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user5'@'10.14.%' IDENTIFIED BY PASSWORD '*long hash' |
+--------------------------------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

以 root 身份登录时,查看 User 表:

mysql> select User, Host, Select_priv from mysql.user;
+----------+---------------+-------------+
| User     | Host          | Select_priv |
+----------+---------------+-------------+
| root     | localhost     | Y           |
| root     | 127.0.0.1     | Y           |
| root     | 10.14.12.8    | Y           |
| user5    | 10.14.%       | …
Run Code Online (Sandbox Code Playgroud)

mysql permissions

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×4

permissions ×1

security ×1