logo
GBase 8s
运维管理
问答

syssqltrace表中sql_uid对应的用户应该如何查找?

GBase用户10523
发表于2023-10-08 17:01:34175次浏览4个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:GBase8s v8.8

【操作系统】:

【CPU】:

【问题描述】*: 业务有如下场景,通过syssqltrace表获取历史执行sql,并获取执行sql的会话信息和用户信息

                      syssqltrace表中存在sql_uid和sql_sid等信息,但sql_uid对应的用户名在syssessions中能查到在线的,离线的查不到

                      如sql的执行用户uid为1,但当该执行用户关闭会话后,无法通过syssessions查到记录,有其他视图能查到uid=1用户的username吗?

                      会话信息相同的问题,会话关闭后,没有历史视图能查到执行sql的会话信息

                      

评论

登录后才可以发表评论
小鱼不吐泡泡发表于 2 年前
数据库用户和操作系统用户是对应的,库里记录的uid是操作系统用户uid
GBase用户10523发表于 2 年前
@小鱼不吐泡泡:我在数据库中通过 CREATE USER 创建用户A和用户B, grant connect, grant dba 赋权, 用户A和用户B都通过jdbc连数据库执行操作,看sql记录和session记录,uid都是2,针对操作系统用户是daemon。但实际业务需求是想获取用户A和用户B的真实username,如何解决?

历史session当前是没办法获取到吗?
GBase用户10523发表于 2 年前
@小鱼不吐泡泡:create user 建了2个用户,A和B,对应的UID都是2, 系统用户为daemon。 有什么办法能查到是A执行的还是B执行的?
小鱼不吐泡泡发表于 2 年前
@GBase用户10523:没办法获取,只能不适用mapping模式创建用户,通过操作系统用户直接搞