mysql - 列出 MySQL 中所有具有 DML 权限的用户
问题描述
我需要列出在架构、表或列级别定义的服务器上具有任何 DML 访问权限的所有用户。我有以下查询。有没有更优雅的解决方案?
select host,
db, user,
'*' tables,
'*' columns,
'schema' priv_defined_at
from mysql.db d
where (Insert_priv = 'Y'
or Update_priv = 'Y'
or Delete_priv = 'Y'
or Create_priv = 'Y'
or Grant_priv = 'Y'
or Index_priv = 'Y'
or Alter_priv = 'Y'
or Create_tmp_table_priv = 'Y'
or Create_view_priv = 'Y'
or Create_routine_priv = 'Y'
or Alter_routine_priv = 'Y'
or Event_priv = 'Y'
or Trigger_priv = 'Y')
union all
select host,
db,
user,
table_name,
'*' columns,
'table' defined_at
from mysql.tables_priv
where (Table_priv in ('Insert','Update','Delete','Create','Drop','Index','Alter','Create View','Trigger'))
union all
(select host,
db,
user,
table_name,
group_concat(column_name separator ', '),
'column' defined_at
from mysql.columns_priv
where (Column_priv like '%insert%'
or Column_priv like '%delete%'
or Column_priv like '%update%'
or Column_priv like '%alter%')
group by 1, 2, 3, 4)
order by user;
解决方案
推荐阅读
- kotlin - 如何使用 Kotlin 的 Apollo Android,但没有 Android?
- python - SQL多表条件检索语句
- javascript - react-beautiful-dnd:当存在多个列表时,在一行中拖动内容会从所有行中拖动相同的索引
- regex - Windows Batch 中的正则表达式以自动化 Docker 运行
- python - Python:在 Pandas 中,根据条件从数据框中的几列中提取数据,并添加到列上匹配的不同数据框中
- angular - 带有 Jest 的 Angular 8 - 'jasmine' 没有导出的成员 'SpyObj'
- ios - 如何使用 SwiftUI 在 NavigationView 中正确包含“添加项目”按钮?
- python - 为什么使用 `open(False)` 阅读有效?
- amazon-web-services - AWS Transcribe 无法正确识别我的文件的媒体格式
- sharepoint - 来自 Angular 的 JSOM/SP.js?