如何让用户看到不到 information_schema
时间: 2024-01-29 08:03:56 浏览: 23
如果您想让用户无法看到数据库中的 information_schema,您可以通过以下步骤实现:
1. 创建一个新的 MySQL 用户,并赋予其访问数据库的权限。
2. 配置该用户的权限,使其不能查看 information_schema 数据库。
3. 将您的应用程序连接到 MySQL 数据库时,使用该新用户而不是 root 用户。
以下是实现以上步骤的详细说明:
1. 创建新的 MySQL 用户并授权:
```
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON db_name.* TO 'new_user'@'localhost';
```
2. 配置该用户的权限,使其不能查看 information_schema 数据库:
```
REVOKE SELECT ON information_schema.* FROM 'new_user'@'localhost';
```
3. 修改应用程序连接 MySQL 的方式,使用新用户而不是 root 用户。在应用程序中修改 MySQL 连接参数,将用户名和密码设置为新用户的用户名和密码:
```
$db = mysqli_connect('localhost', 'new_user', 'password', 'db_name');
```
这样,用户使用新用户连接到 MySQL 数据库后,将无法查看 information_schema 数据库。
相关问题
mysql隐藏information_mysql数据库中的information_schema
我再次强调,隐藏数据库是一项非常不推荐的做法,因为它可能会导致数据安全问题和系统不稳定性。而且,information_schema数据库是MySQL系统数据库之一,它存储了MySQL数据库的元数据信息,是MySQL数据库的重要组成部分,不应该被隐藏。如果你非要隐藏它,可以通过修改MySQL配置文件来实现,具体步骤如下:
1. 打开MySQL配置文件my.cnf(或my.ini);
2. 找到[mysqld]或[mysql]段;
3. 在这个段下面添加skip-show-database参数,如下所示:
[mysqld]
skip-show-database
4. 保存并关闭配置文件;
5. 重启MySQL服务。
这样,information_schema数据库就会被隐藏起来,但请注意这样做可能会影响到一些MySQL命令和应用程序的正常运行,建议你谨慎操作。
access denied for user root@localhost to database 'information_schema'
当出现"access denied for user root@localhost to database 'information_schema'"的错误提示时,意味着使用root用户连接到数据库时被拒绝了访问information_schema数据库的权限。
information_schema是MySQL系统数据库,用于存储关于数据库、表、列等元数据信息。一般情况下,root用户应该具有访问该数据库的权限。出现这个错误可能有以下几个原因:
1. 密码错误:请确保输入的root用户密码是正确的。可以尝试重新输入密码,或者重置root用户密码。
2. 权限问题:可能是root用户没有足够的权限访问information_schema数据库。可以通过授权命令给予root用户访问该数据库的权限。例如,使用GRANT语句授权root用户访问information_schema数据库:
```
GRANT ALL PRIVILEGES ON information_schema.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
```
3. 数据库不存在:如果information_schema数据库不存在,也会出现该错误。可以尝试创建该数据库:
```
CREATE DATABASE information_schema;
```
4. 其他配置问题:还有可能是其他配置问题导致的访问拒绝。可以检查MySQL的配置文件(如my.cnf或my.ini)中是否有相关的限制或配置错误。
希望以上解答对您有帮助!