MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

すべてのデータベースを表示するためのMySQL権限?


このための構文は次のとおりです-

revoke show databases on *.* from 'yourUserName'@'yourHostName';

すべてのユーザー名とホスト名を表示しましょう-

mysql> select user,host from MySQL.user;

これにより、次の出力が生成されます-

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Bob              | %         |
| Charlie          | %         |
| Robert           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam             | localhost |
| Adam Smith       | localhost |
| Chris            | localhost |
| David            | localhost |
| James            | localhost |
| John             | localhost |
| John Doe         | localhost |
| Michael          | localhost |
| Mike             | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
+------------------+-----------+
23 rows in set (0.00 sec)

これは、特定のユーザーのすべての許可を表示するためのクエリです-

mysql> show grants for 'John'@'localhost';

これにより、次の出力が生成されます-

+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for John@localhost                                                                                                                                                                                                                                                                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `John`@`localhost` |
| GRANT BACKUP_ADMIN,BINLOG_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON *.* TO `John`@`localhost`                                                                                                  |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.07 sec)

これは、すべてのデータベースを表示するためのアクセス許可を持つクエリです。すべてのデータベースを表示するには、showdatabasesコマンド-

を使用します
mysql> revoke show databases on *.* from 'John'@'localhost';
Query OK, 0 rows affected (0.18 sec)

  1. MySQLを使用するサーバー上のすべてのデータベースのすべてのテーブルでSELECTを付与するにはどうすればよいですか?

    このために、以下の構文のようにGRANTSELECTステートメントを使用できます- GRANT SELECT ON *.* TO 'yourUserName'@'yourHostName'; まず、すべてのユーザー名とホストを一覧表示します- mysql> select user,host from mysql.user; これにより、次の出力が生成されます- +------------------+-----------+ | user             |    

  2. MySQLのデータベースのリストを返しますか?

    データベースのリストを返すための構文は次のとおりです- select schema_name as anyAliasName from information_schema.schemata; これがMySQLのデータベースのリストを返すクエリです- mysql> select schema_name as DatabaseName from information_schema.schemata; これにより、次の出力が生成されます- +---------------------------+ | DatabaseName         &