getAuditLog
语法
getAuditLog([userName], [startTime], [endTime], [opType])
详情
查询用户 userName 在 startTime 到 endTime 这段时间内完成的,类型为 opType 的 DDL 操作记录。
返回一个表,其结构如下:
列名 | 类型 | 含义 |
---|---|---|
userId | STRING | 执行操作的用户名称 |
startTime | NANOTIMESTAMP | 事务的开始时间 |
endTime | NANOTIMESTAMP | 事务的结束时间 |
dbName | STRING | 数据库名 |
tbName | STRING | 表名 |
opType | STRING | 操作类型 |
opDetail | STRING | 操作细节说明 |
tid | LONG | 事务ID |
cid | LONG | commit ID |
remoteIp | IPADDR | 提交该操作的客户端 IP |
remotePort | INT | 提交该操作的客户端端口 |
opType 的所有取值及其对应的 opDetail 示例如下:
opType | opDetail |
---|---|
CREATE_DB | |
DROP_DB | |
CREATE_TABLE | |
CREATE_PARTITIONED_TABLE | |
DROP_TABLE | |
DROP_PARTITION | deletedPartitions=xxx |
RENAME_TABLE | tableName=[xxx], newTableName=[xxx] |
SQL_DELETE | script=[xxx], deletedRows=xxx |
SQL_UPDATE | script=[xxx], updatedRows=xxx |
UPSERT | insertedRows=xxx, updatedRows=xxx |
ADD_COLUMN | colName=[xxx], colType=[xxx] |
SET_COLUMN_COMMENT | colName=[xxx], colComment=[xxx] |
TRUNCATE_TABLE | |
RENAME_COLUMN | colName=[xxx], newColName=[xxx] |
REPLACE_COLUMN | colName=[xxx], colType=[xxx], newColType=[xxx] |
DROP_COLUMN | columnName=[xxx] |
ADD_RANGE_PARTITION | |
ADD_VALUE_PARTITION |
参数
userName 字符串标量或向量,表示要查询的用户。默认为 NULL,表示查询所有用户的 DDL 操作日志。
startTime 整数标量或者时间标量,时间标量支持DATE, MONTH, DATETIME, TIMESTAMP, DATEHOUR, NANOTIMESTAMP 类型。表示查询的起始时间点。默认值为 1970.01.01 。
endTime 整数标量或者时间标量,时间标量支持DATE, MONTH, DATETIME, TIMESTAMP, DATEHOUR, NANOTIMESTAMP 类型。表示查询的结束时间点。默认值为空,表示结束时间为当前时间。endTime 必须大于 startTime。
opType 字符串标量或向量,表示查询的操作类型。默认为 NULL,表示查询所有 DDL 操作类型。
注: startTime 和 endTime 规定的是 DDL 操作结束的时间范围。
例子
// 用户 admin 进行一系列 DDL 操作
login("admin","123456")
n = 3
id = rand(`st0001`st0002`st0003`st0004`st0005, n)
sym = rand(`A`B, n)
tradeDate = take(2022.01.01..2022.01.10, 3)
val = 1..n
dummyTb = table(id, sym,tradeDate, val)
dbPath = "dfs://auditTest"
if(existsDatabase(dbPath)){dropDatabase(dbPath)}
db = database(directory=dbPath, partitionType=VALUE, partitionScheme=2022.01.01..2022.01.05, engine='TSDB')
pt = createPartitionedTable(dbHandle=db, table=dummyTb, tableName="snap", partitionColumns=`TradeDate, sortColumns=`id`tradeDate, keepDuplicates=ALL)
pt.append!(dummyTb)
renameTable(db, `snap, `snap_2)
// 查询 DDL 操作记录
getAuditLog()
返回:
userName | startTime | endTime | dbName | tbName | opType | opDetail | tid | cid | remoteIp |
---|---|---|---|---|---|---|---|---|---|
admin | 2024.03.26 14:40:43.659196080 | 2024.03.26 14:40:43.676082419 | dfs://auditTest | CREATE_DB | 1 | 1 | 192.168.0.140 | ||
admin | 2024.03.26 14:40:43.676154581 | 2024.03.26 14:40:43.687319577 | dfs://auditTest | snap | CREATE_PARTITIONED_TABLE | 2 | 2 | 192.168.0.140 | |
admin | 2024.03.26 14:40:45.135000207 | 2024.03.26 14:40:45.160530442 | dfs://auditTest | snap | RENAME_TABLE | tableName=[snap], newTableName=[snap_2] | 4 | 4 | 192.168.0.14 |