首页 文章

DSE Cassandra审计日志未捕获DML中的UDT

提问于
浏览
1

我已在特定键空间上设置DSE Cassandra审核日志功能 . 通过参考以下文件 -

https://docs.datastax.com/en/datastax_enterprise/5.0/datastax_enterprise/sec/auditConfigCassandraTable.html

这工作得非常好 . 但是,问题是在“operation”列中捕获的DML语句具有预准备语句的绑定变量 . 这是通过java程序使用DSE Driver执行的 . 对于UDT,此绑定变量被捕获为一些十六进制值 .

例如:opts = 000000120000002f00000003414c4c000000045253434800000001590000000800000162e0e658180000000641504952414d00000001490000002f0000000

我需要知道如何解析这个十六进制值来获取实际数据 .

1 回答

  • 0

    它应该是特定版本的DSE的问题 . 我刚刚使用5.1和6.0进行了测试,并且在这两个数据中都正确报告了数据(我使用了mapper来生成查询):

    INFO  [Native-Transport-Requests-1] 2018-08-20 08:53:48,754  SLF4JAuditWriter.java:96 - host:localhost/127.0.0.1|source:/127.0.0.1|user:anonymous|authenticated:anonymous|timestamp:1534748028754|category:DML|type:CQL_PREPARE_STATEMENT|ks:test|cf:audit_test|operation:INSERT INTO test.audit_test (id,u) VALUES (?,?);
    INFO  [Native-Transport-Requests-1] 2018-08-20 08:53:48,770  SLF4JAuditWriter.java:96 - host:localhost/127.0.0.1|source:/127.0.0.1|user:anonymous|authenticated:anonymous|timestamp:1534748028770|category:DML|type:CQL_UPDATE|ks:test|cf:audit_test|operation:INSERT INTO test.audit_test (id,u) VALUES (?,?); [id=2,u=2:test 2]|consistency level:LOCAL_ONE
    

    考虑至少升级到5.1 ......

    附:刚刚发现,在5.1中,集合的输出不起作用(也许还有其他集合) .

相关问题