如何在mysql中获取字段名
我需要了解mysql中的用户权限。当我查看如何在mysql中获取字段名,mysql,database,field,Mysql,Database,Field,我需要了解mysql中的用户权限。当我查看mysql.user表时,有一堆字段以enum('N','Y')作为值来描述特定权限。 我的问题是如何为某个具体用户获取所有具有值Y的字段? 以下是用户列的输出: mysql> show columns from mysql.user; +-----------------------+-----------------------------------+------+-----+---------+-------+ | Field
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
的字段。这将显示所有字段。他可以添加WHEREuser
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他正试图做一些与SHOW GRANTS FOR
相当的事情。@Barmar对于某个具体用户?他只想看到特权为Y
的字段。这将显示所有字段。他可以添加WHEREuser
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他正试图做一些与SHOW GRANTS FOR
相当的事情。@Barmar对于某个具体用户?他只想看到特权为Y
的字段。这将显示所有字段。他可以添加WHEREuser
='your_user'和(Select_priv='Y'或Insert_priv=Y)等。对于特定用户,他需要所有已启用权限的列表。换句话说,他正试图做一些与SHOW GRANTS FOR
相当的事情。@Barmar对于某个具体用户?他只想看到特权为Y
的字段。这将显示所有字段。他可以添加WHEREuser
='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执行此操作。