Elcid_91 Asked: 2020-10-31 07:07:13 +0800 CST2020-10-31 07:07:13 +0800 CST 2020-10-31 07:07:13 +0800 CST 如何将应用程序用户名传递给数据库服务器以进行审计? 772 编写需要用户登录的应用程序。 我想用一张表来存储我的用户信息;但是,当我为所有表创建审计时,我将无法使用用户 ID。 相反,将用户添加到数据库本身会给我我需要的东西,但它会是很多用户。 这里的最佳做法是什么?我需要能够使用包含更改它的用户的 id 的列来创建表审计。 mysql audit 3 个回答 Voted Best Answer mustaccio 2020-10-31T07:30:51+08:002020-10-31T07:30:51+08:00 如果我正确理解您的问题,您是在询问如何将应用程序用户名传递给 MySQL 以记录在审计表中。 您可以使用用户定义的变量,它在创建它的会话中是本地的。一旦通过身份验证,您的应用程序代码会将其设置为登录用户的名称。然后,您的审计代码可以引用该变量并检索用户名。 小提琴手 Yunus UYANIK 2020-10-31T07:35:51+08:002020-10-31T07:35:51+08:00 我不推荐它而不是创建用户,因为您的表和索引大小会增长。 但是,有些公司会按照你说的做。在他们的表上添加一个新列,例如CreatedBy和ModifiedBy。 数据更改后,他们使用保存用户信息的表搜索他们的审计表。 Rick James 2020-11-01T08:24:27+08:002020-11-01T08:24:27+08:00 你是怎么做审计的?使用存储的例程?考虑使用该USER()功能。但是要小心你如何定义函数;它可能会给您root@localhost而不是实际的“用户”。
如果我正确理解您的问题,您是在询问如何将应用程序用户名传递给 MySQL 以记录在审计表中。
您可以使用用户定义的变量,它在创建它的会话中是本地的。一旦通过身份验证,您的应用程序代码会将其设置为登录用户的名称。然后,您的审计代码可以引用该变量并检索用户名。
小提琴手
我不推荐它而不是创建用户,因为您的表和索引大小会增长。
但是,有些公司会按照你说的做。在他们的表上添加一个新列,例如
CreatedBy
和ModifiedBy
。数据更改后,他们使用保存用户信息的表搜索他们的审计表。
你是怎么做审计的?使用存储的例程?考虑使用该
USER()
功能。但是要小心你如何定义函数;它可能会给您root@localhost
而不是实际的“用户”。