如何在mysql中获取字段名

如何在mysql中获取字段名,mysql,database,field,Mysql,Database,Field,我需要了解mysql中的用户权限。当我查看mysql.user表时,有一堆字段以enum('N','Y')作为值来描述特定权限。 我的问题是如何为某个具体用户获取所有具有值Y的字段? 以下是用户列的输出: mysql> show columns from mysql.user; +-----------------------+-----------------------------------+------+-----+---------+-------+ | Field

我需要了解mysql中的用户权限。当我查看
mysql.user
表时,有一堆字段以
enum('N','Y')
作为值来描述特定权限。 我的问题是如何为某个具体用户获取所有具有值
Y
的字段? 以下是用户列的输出:

mysql> show columns from mysql.user;
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Field                 | Type                              | Null | Key | Default | Extra |
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Host                  | char(60)                          | NO   | PRI |         |       |
| User                  | char(16)                          | NO   | PRI |         |       |
| Password              | char(41)                          | NO   |     |         |       |
| Select_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Insert_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Update_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Delete_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Create_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Drop_priv             | enum('N','Y')                     | NO   |     | N       |       |
| Reload_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Shutdown_priv         | enum('N','Y')                     | NO   |     | N       |       |
| Process_priv          | enum('N','Y')                     | NO   |     | N       |       |
| File_priv             | enum('N','Y')                     | NO   |     | N       |       |
| Grant_priv            | enum('N','Y')                     | NO   |     | N       |       |
| References_priv       | enum('N','Y')                     | NO   |     | N       |       |
| Index_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Alter_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Show_db_priv          | enum('N','Y')                     | NO   |     | N       |       |
| Super_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y')                     | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Execute_priv          | enum('N','Y')                     | NO   |     | N       |       |
| Repl_slave_priv       | enum('N','Y')                     | NO   |     | N       |       |
| Repl_client_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y')                     | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y')                     | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y')                     | NO   |     | N       |       |
| Create_user_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Event_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Trigger_priv          | enum('N','Y')                     | NO   |     | N       |       |
| ssl_type              | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |
| ssl_cipher            | blob                              | NO   |     | NULL    |       |
| x509_issuer           | blob                              | NO   |     | NULL    |       |
| x509_subject          | blob                              | NO   |     | NULL    |       |
| max_questions         | int(11) unsigned                  | NO   |     | 0       |       |
| max_updates           | int(11) unsigned                  | NO   |     | 0       |       |
| max_connections       | int(11) unsigned                  | NO   |     | 0       |       |
| max_user_connections  | int(11) unsigned                  | NO   |     | 0       |       |
+-----------------------+-----------------------------------+------+-----+---------+-------+

您可以看到这样一个用户的所有特权

SELECT * FROM `mysql`.`user` WHERE `user`='your_user';
SELECT * FROM `mysql`.`db` WHERE `user`='your_user';

您可以在其中添加希望与“Y”相等的字段。

您可以看到这样的用户的所有特权

SELECT * FROM `mysql`.`user` WHERE `user`='your_user';
SELECT * FROM `mysql`.`db` WHERE `user`='your_user';

您可以在其中添加希望与“Y”相等的字段。

您可以看到这样的用户的所有特权

SELECT * FROM `mysql`.`user` WHERE `user`='your_user';
SELECT * FROM `mysql`.`db` WHERE `user`='your_user';

您可以在其中添加希望与“Y”相等的字段。

您可以看到这样的用户的所有特权

SELECT * FROM `mysql`.`user` WHERE `user`='your_user';
SELECT * FROM `mysql`.`db` WHERE `user`='your_user';



您可以在其中添加您希望与“Y”相等的字段

他只想查看特权为
Y
的字段。这将显示所有字段。他可以添加WHERE
user
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他正试图做一些与
SHOW GRANTS FOR
相当的事情。@Barmar对于某个具体用户?他只想看到特权为
Y
的字段。这将显示所有字段。他可以添加WHERE
user
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他正试图做一些与
SHOW GRANTS FOR
相当的事情。@Barmar对于某个具体用户?他只想看到特权为
Y
的字段。这将显示所有字段。他可以添加WHERE
user
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他正试图做一些与
SHOW GRANTS FOR
相当的事情。@Barmar对于某个具体用户?他只想看到特权为
Y
的字段。这将显示所有字段。他可以添加WHERE
user
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他试图做一些与
SHOW GRANTS FOR
相当的事情。@Barmar针对某个具体用户?你有没有理由不直接使用
SHOW GRANTS FORuser@host
?就这样!!谢谢,我不是mysql专家:)有什么理由你不只是为了user@host?就这样!!谢谢,我不是mysql专家:)有什么理由你不只是为了user@host?就这样!!谢谢,我不是mysql专家:)有什么理由你不只是为了user@host?就这样!!谢谢,我不是mysql专家:)这是我的第一种方法,但是这个
IF
语句有大量的复制/粘贴工作,我想知道是否有办法摆脱这种类型。您可以使用
信息模式.columns
表编写动态SQL来在变量中构造查询,然后准备并执行它。不要手动复制粘贴每一行。将整个列列表粘贴到编辑器中,并使用regexp替换。这是我的第一种方法,但使用此
IF
语句有很多复制/粘贴工作,我想知道是否有办法摆脱这种类型。您可以使用
信息模式.columns
表编写动态SQL,以在变量中构造查询,然后准备并执行它。不要手动复制粘贴每一行。将整个列列表粘贴到编辑器中,并使用regexp替换。这是我的第一种方法,但使用此
IF
语句有很多复制/粘贴工作,我想知道是否有办法摆脱这种类型。您可以使用
信息模式.columns
表编写动态SQL,以在变量中构造查询,然后准备并执行它。不要手动复制粘贴每一行。将整个列列表粘贴到编辑器中,并使用regexp替换。这是我的第一种方法,但使用此
IF
语句有很多复制/粘贴工作,我想知道是否有办法摆脱这种类型。您可以使用
信息模式.columns
表编写动态SQL,以在变量中构造查询,然后准备并执行它。不要手动复制粘贴每一行。将整个列列表粘贴到编辑器中,并使用regexp replace执行此操作。