Mysql 不开general log与audit log ,如何跟踪用户与数据库的连接记录 ...
如何创建一个简单的审计,检查哪些数据库用户已经成功连接到数据库。
MySQL提供了一个名为init_connect的全局变量,每次用户成功连接到正在运行的数据库服务器的模式时,都会执行这个变量。如果在下面的示例中,连接用户没有执行由变量定义的代码的权限,连接将被终止。因为init_connect是一个全局变量,所以无法排除一部分用户(SUPER或CONNECTION_ADMIN权限的用户不执行init_connect)执行init _ connect中的代码。init_connect选项不影响拥有SUPER或CONNECTION_ADMIN权限的用户,但是该选项对于应用程序用户来说已经足够了。
create database audit;
CREATE TABLE if not exists audit.logon_log (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
connection_id INT UNSIGNED NOT NULL,
login_ts TIMESTAMP NOT NULL,
`schema` VARCHAR(64) NULL,
user VARCHAR(77) NOT NULL,
PRIMARY KEY (id)
);