getAclAuditLog

语法

getAclAuditLog([userId],[startTime],[endTime],[opType])

详情

查询用户 userIdstartTimeendTime 这段时间内完成的,类型为 opType 的 ACL 操作记录。

返回值:一张表,包含以下字段:

  • userId:表示执行操作的用户名称。
  • time:表示操作发生时间。
  • opType:表示操作类型。
  • opDetail:操作细节说明。
  • remoteIp:提交该操作的客户端 IP。
  • remotePort:提交该操作的客户端端口。

opType 的所有取值及其对应的 opDetail 示例如下:

opType opDetail Description
login login userId=xxx encrypted=true/false 用户登录
logout logout userId=xxx sessionOnly=true/false 用户登出
createUser userId=xxx groupId=xxx isAdmin=true/false 创建用户
createGroup groupId=xxx userIds=[xxx,xxx,…] 创建用户组
resetPwd userId=xxx 重置用户密码
changePwd 修改用户密码
deleteUser userId=xxx 删除用户
deleteGroup groupId=xxx 删除用户组
addGroupMember userIds=[xxx,xxx,…] groupIds=[xxx,xxx,…] 把用户添加到群组
deleteGroupMember userIds=[xxx,xxx,…] groupIds=[xxx,xxx,…] 删除用户组的成员
grant userOrGroupId=xxx accessType=xxx objs=[xxx,xxx,…] 授予权限
deny userOrGroupId=xxx accessType=xxx objs=[xxx,xxx,…] 拒绝权限
revokeByDFSOperation oldObj=xxx newObjs=[xxx,xxx,…] 进行 dropDatabase, dropTable 或 dropColumn! 删除操作时,会自动清除所有用户中与被删除内容相关的权限。
replaceByDFSOperation oldObj=xxx newObjs=[xxx,xxx,…] 进行 renameTable 和 replaceColumn! 等修改操作时,会同步更新与被修改内容相关的权限信息
revoke userOrGroupId=xxx accessType=xxx objs=[xxx,xxx,…] 撤回权限
createCatalog catalog=xxx 创建 catalog
dropCatalog catalog=xxx 删除 catalog
renameCatalog catalog=xxx new catalog=xxx 重命名 catalog
renameSchema catalog=xxx schema=xxx new schema=xxx 重命名 schema
createSchema catalog=xxx dbUrl=xxx schema=xxx 创建 schema
dropSchema catalog=xxx schema=xxx 删除 schema
tryDropSchemaByDatabase dbUrl=xxx 删除数据库时,从 catalog 里删掉 db 对应的 schema
setMaxJobPriority maxJobPriority=xxx 指定提交作业的最高优先级
setMaxJobParallelism maxJobParallelism=xxx 指定提交的作业最多可以同时并行执行的子任务数量
newConnection 收到新连接
closeConnection 关闭连接
saveClusterNodes 修改 nodes.cfg
saveClusterNodesConfigs 修改 cluster.cfg
saveControllerConfigs 修改 controller.cfg
loadClusterNodesConfigs 读取 nodes.cfg
loadControllerConfigs 读取 controller.cfg

参数

userId 可选参数,字符串标量或向量,表示要查询的用户。默认为 NULL,表示查询所有用户的 ACL 操作日志。

startTime 可选参数,整型标量或者时间标量,表示查询的起始时间点。时间标量支持 DATE, MONTH, DATETIME, TIMESTAMP, DATEHOUR, NANOTIMESTAMP 类型。默认值为 1970.01.01,表示 1970.01.01零点。

endTime 可选参数,整型标量或者时间标量,表示查询的结束时间点。时间标量支持DATE, MONTH, DATETIME, TIMESTAMP, DATEHOUR, NANOTIMESTAMP 类型。默认值为空,表示结束时间为当前时间。endTime 必须大于 startTime

opType 可选参数,字符串标量或向量,表示查询的操作类型。默认为 NULL,表示查询所有 ACL 操作类型。关于 opType 的详细描述参见详情。

例子

首先配置文件设置 enableAuditLog=true。然后通过 getAclAuditLog 查询所有 ACL 操作。

login("admin","123456")
createUser("user1","abcdec")
grant("user1",TABLE_READ,"*")
logout()
login("admin","123456")
getAclAuditLog()

返回:

userId time opType opDetail remoteIp remotePort
guest 2025.01.02 14:26:52.738224592 newConnection 192.168.0.130 55,428
guest 2025.01.02 14:26:53.049518446 login login userId=admin encrypted=false 192.168.0.130 55,428
admin 2025.01.02 14:26:53.059963095 createUser userId=user1 groupIds=[] isAdmin=false 192.168.0.130 55,428
admin 2025.01.02 14:26:53.060387348 grant userOrGroupId=user1 accessType=TABLE_READ objs=[] 192.168.0.130 55,428
guest 2025.01.02 14:26:53.060426785 logout logout userId=admin sessionOnly=true 192.168.0.130 55,428
guest 2025.01.02 14:26:53.060576365 login login userId=admin encrypted=false 192.168.0.130 55,428
guest 2025.01.08 09:46:49.710254224 newConnection 192.168.0.130 41,746
guest 2025.01.08 09:46:52.124830142 login login userId=admin encrypted=false 192.168.0.130 41,746
admin 2025.01.08 09:46:52.127153771 createUser userId=user1 groupIds=[] isAdmin=false 192.168.0.130 41,746
admin 2025.01.08 09:46:52.127752666 grant userOrGroupId=user1 accessType=TABLE_READ objs=[] 192.168.0.130 41,746