如何发现mysql权限、表结构的变化

MySQL中如果打开了二进制日志,就可以找到在相应时间段内mysql权限或表结构的改变。


mysql> show variables like 'log_bin_basename';
+------------------+-------------------------------------------------+
| Variable_name    | Value                                           |
+------------------+-------------------------------------------------+
| log_bin_basename | /u01/db/mysql5.6/data/Train-BJ01-105-bin        |
+------------------+-------------------------------------------------+
1 row in set


mysql> show master status;
+----------------------------------+-----------+--------------+------------------+-------------------+
| File                             | Position  | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------------------+-----------+--------------+------------------+-------------------+
| Train-BJ01-105-bin.000001        | 225706845 |              |                  |                   |
+----------------------------------+-----------+--------------+------------------+-------------------+
1 row in set



$cd /u01/db/mysql5.6/data/


如想找到二进制日志中是否有权限的改变
$mysqlbinlog Train-BJ01-105-bin.000001 |grep -B2  --ignore-case -E 'revoke|rename|grant'
#140107 13:40:00 server id 105  end_log_pos 225706845 CRC32 0xf85fa9d0  Query   thread_id=16801 exec_time=0     error_code=0
SET TIMESTAMP=1389073200/*!*/;
RENAME USER 'dbadmin'@'192.168.10.167' TO 'dbadmin'@'192.168.10.%'


如想找到二进制日志中是否有DDL,读取二进制日志后,grep DDL的关键词即可
$mysqlbinlog Train-BJ01-105-bin.000001 |grep -B2  --ignore-case -E 'create|drop|alert'





你可能感兴趣的:(MySQL)