如何识别Moodle 4.0课程中手动添加用户的操作者?
Moodle 4.0 追踪手动添加课程用户的操作者方案
一、SQL查询(直接高效)
作为站点管理员,可直接查询数据库获取精准记录:
1. 核心角色分配查询
替换{courseid}为目标课程ID,执行以下SQL:
SELECT u.username, u.firstname, u.lastname, ra.timemodified, ra.action FROM mdl_role_assignments ra JOIN mdl_user u ON ra.userid = u.id JOIN mdl_context c ON ra.contextid = c.id WHERE c.contextlevel = 50 AND c.instanceid = {courseid} ORDER BY ra.timemodified DESC;
- 说明:
contextlevel=50对应课程上下文,timemodified为操作时间,action字段标记操作类型,关联用户表可直接得到操作者信息。
2. 补充日志表查询
若常规日志无记录,查询标准日志存储表:
SELECT u.username, l.timecreated, l.action, l.target FROM mdl_logstore_standard_log l JOIN mdl_user u ON l.userid = u.id WHERE l.contextlevel = 50 AND l.contextinstanceid = {courseid} AND l.action IN ('enrol_manual_add', 'assign_role') ORDER BY l.timecreated DESC;
二、插件辅助
- Audit Trail插件:安装后会记录所有系统操作细节,包括用户选课/角色分配的操作者信息,可在后台直接查看完整审计轨迹。
- 高级日志功能:进入「站点管理」→「报告」→「日志」→「日志设置」,开启高级日志,勾选「用户enrolment」相关日志项,后续操作会被完整留存。
三、后台配置检查
- 确认日志存储:进入「站点管理」→「插件」→「日志存储」,确保「标准日志存储」已启用,且日志保留周期覆盖目标操作时间段。
- 权限验证:通过「站点管理」→「用户」→「权限检查」,排查是否有其他拥有
enrol/manual:enrol权限的用户执行了操作。
内容的提问来源于stack exchange,提问作者Menna Ayman
相关产品推荐
相关产品推荐

