MySQLを使用するサーバー上のすべてのデータベースのすべてのテーブルでSELECTを付与するにはどうすればよいですか?
このために、以下の構文のようにGRANTSELECTステートメントを使用できます-
GRANT SELECT ON *.* TO '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 | | Emma | localhost | | Jace | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | Michael | localhost | | Mike | localhost | | Robert | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 26 rows in set (0.00 sec)
GRANTSELECT-
を実装するためのクエリは次のとおりです。mysql> GRANT SELECT ON *.* TO 'hbstudent'@'localhost'; Query OK, 0 rows affected (0.00 sec)
-
MySQLで特定の列名を持つテーブルを見つける方法は?
列名を見つけるには、information_schema.columnsを使用します。以下は構文です- select distinct table_name from information_schema.columns where column_name like '%yourSearchValue%' and table_schema=database(); さまざまなテーブルで列名を見つけるために、上記の構文を実装しましょう。ここでは、特定の列名が「クライアント」という単語を持つテーブル名のみが必要です- mysql> select distinct table_
-
MySQLを使用してすべてのテーブルに存在する列を識別する方法は?
列名を識別するには、MySQLでINFORMATION_SCHEMA.COLUMNSを使用します。構文は次のとおりです- select table_name,column_name from INFORMATION_SCHEMA.COLUMNS where table_schema = SCHEMA() andcolumn_name='anyColumnName'; すべてのテーブルに存在する列を識別するために、上記のクエリを実装しましょう。ここでは、列EmployeeAge-の存在を見つけています。 mysql> select table_name,column_na