您的当前位置:首页正文

mysql_config_editor程序的用法

2023-11-09 来源:帮我找美食网

1、mysql_config_editor程序的作用:

它只是用来在用户的家目录下生成一个.mylogin.cnf 里面保存有用于登录mysql-server端的password,host,user信息,由于mysql这个程序每次启动时

都会自己去读取这个文件,所以在我们登录时就可以不用自己手工的指定user,password,host这些东西了。好处是方便,不好的地方在于它不安全,因为

这个文件是可以被解密的,这样就可能我们的密码会被别人破解。

2、mysql_config_editor程序的用法:

1、它包涵四个子命令:set,reset,print,remove

2、以set 创建一个.mylogin.cnf文件为例:

mysql_config_editor set --user=admin --host=localhost --password #注意--password后面是不能接值的,它要求在命令运行过程中输入。

3、在mysql这个程序不接任命选项时它会自动去读用户家目录下的.mylogin.cnf文件。

4、关于mysql.config_editor的更多内容如--login-path这里就不说了。

5、例子:

技术分享

 

mysql_config_editor程序的用法

标签:

小编还为您整理了以下内容,可能对您也有帮助:

mysql_config_editor密码带#号

mysql_config_editor是一个MySQL配置文件管理工具,用于管理MySQL的登录认证信息。在使用该工具时,如果你的登录密码中带有“#”符号,则可能会导致程序报错或无法正常工作。

解决方案一般为在密码中加上转义字符“\”,使其不被误认为是注释符号。例如,如果你的密码为“mypassword#123”,则需要将其改为“mypassword\#123”。

另外一种解决方案是将密码保存在环境变量中,避免在命令行中直接输入密码。这样不仅能够保护密码的安全性,还能够避免因特殊字符引起的问题。

总之,遇到带有特殊字符的密码,我们需要注意字符转义和环境变量等处理方式,以确保配置文件管理工具能够正常工作。

cmd直接执行sql脚本

以 mysql -h localhost -uroot -ppassword 方式直接将密码写入快捷方式,

登陆可以成功,但是如果使用 -e 参数执行语句,会出现

Warning: Using a password on the command line interface can be insecure 错误 ,

在MySQL 5.6.6之后可以使用 mysql_config_editor ,它可以把账户密码写入 */.mylogin.cnf 并加密

登入 MySQL Serverbin 文件夹,执行

mysql_config_editor set --login-path=xxx --host=127.0.0.1 --user=root --password

--login-path 的值只是一个名字,可以随便写,

回车,然后输入密码,就完成了账户信息的写入

mysql_config_editor print --all

mysql --login-path=xxx

试一下,应该可以登入了

创建快捷方式,快捷方式的

目标:

"C:Program FilesMySQLMySQL Server 5.7binmysql.exe" "--defaults-file=C:ProgramDataMySQLMySQL Server 5.7my.ini" --login-path=try -e "SOURCE C:/Users/Desktop/main.sql;"

注意 -e 后面 路径中的反斜杠,写错了是无法运行的

起始位置:

"C:Program FilesMySQLMySQL Server 5.7bin"

mysql 5.6新增了什么功能

1. 前言

        为了安全和操作的可追溯性考虑,越来越多的公司加入了审计功能。mysql5.5推出了相关的审计功能,到5.6.20功能进一步完善,算是勉强可用了,虽然细粒度方面做的不是太好,但是后续版本还是可以期待一下的。这里主要介绍下相关的功能和特性。

2. 开启审计

2.1 配置文件加载

mysql5.6中的审计是通过audit_log插件来实现的,我们可以在配置文件中加载该插件来开启。
[mysqld] plugin-load=audit_log.so 

如果希望数据库强制开启审计功能,如果不开启的话server不启动,或者审计功能不能进行时server挂住,加入
[mysqld] plugin-load=audit_log.so audit-log=FORCE_PLUS_PERMANENT 

2.2 加载插件列表

审计功能的开启还有另外一种方式,就是在命令行中安装审计插件。确保在数据库的插件目录中存在audit_log.so。[i686数据库的插件目录默认是/usr/lib/mysql/plugin,中,也可以指定参数plugin_dir]
mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so'; 

3. 参数介绍

审计参数如下:技术分享

3.1 audit_log_buffer_size 

audit_log_buffer_size :审计缓存,建议设置为4096的倍数,该参数只有在audit_log_strategy为ASYNCHRONOUS时生效。

3.2 audit_log_connection_policy

audit_log_connection_policy:记录了连接审计的信息。包含三个参数 
ValueDescription
ALLLog all connection events
ERRORSLog only failed connection events
NONEDo not log connection events
如果设置了audit_log_policy可能会被覆盖。

3.3 audit_log_current_session

audit_log_current_session:标志当前会话是否进入审计,是个只读参数,只能通过 audit_log_exclude_accounts和 audit_log_include_accounts来控制哪儿些进入会话审计。

3.4 audit_log_exclude_accounts/audit_log_include_accounts

audit_log_exclude_accounts:控制哪儿些用户可以不进入审计,字符串类型,默认可以使用逗号分隔。
audit_log_include_accounts:控制哪儿些用户可以进入审计,字符串类型,默认可以使用逗号分隔。
exclude和include同时只有一个参数生效。

3.5 audit_log_file

audit_log_file:可以用于控制审计日志的名称和路径。

3.6 audit_log_flush

audit_log_flush:控制审计日志的归档,只有在audit_log_rotate_on_size=0的时候生效,在手工重命名审计日志归档后,可以指定audit_log_flush=1来生成新的审计日志。

3.7 audit_log_format

audit_log_format:审计日志的格式,分为OLD和NEW(NEW格式在5.6.14才出现)。当更改格式的时候需要进行3个步骤:
1 :关闭数据库2:重命名当前的audit.log文件
3:更改audit_log_format参数,并重启mysql,重启后会自动生成一个新的audit.log文件
防止NEW格式和OLD格式在同一个审计日志中,会导致审计功能错误。audit_log_policy :记录了审计日志的控制策略:
ValueDescription
ALLLog all events
LOGINSLog only login events
QUERIESLog only query events
NONELog nothing (disable the audit stream

3.8 audit_log_statement_policy

audit_log_statement_policy:记录了语句的审计策略,可能会被audit_log_policy给覆盖:
ValueDescription
ALLLog all statement events
ERRORSLog only failed statement events
NONEDo not log statement events

3.9 audit_log_rotate_on_size

audit_log_rotate_on_size:审计日志的文件大小。当参数大于0的时候,当审计日志超过限制后,会自动的重命名为加时间戳后缀的日志文件。同时创建新的审计日志。

3.10 audit_log_strategy

audit_log_strategy:审计日志的刷新策略分为:
ValueMeaning
ASYNCHRONOUSLog asynchronously, wait for space in output buffer
PERFORMANCELog asynchronously, drop request if insufficient space in output buffer
SEMISYNCHRONOUSLog synchronously, permit caching by operating system
SYNCHRONOUSLog synchronously, call sync() after each request

4. 日志格式

审计日志格式是XML的形式,NEW要比OLD的标签详细一些。具体的标签信息如下:实例:
<?xml version="1.0" encoding="UTF-8"?><AUDIT> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:24 UTC</TIMESTAMP> <RECORD_ID>1_2013-09-17T15:03:24</RECORD_ID> <NAME>Audit</NAME> <SERVER_ID>1</SERVER_ID> <VERSION>1</VERSION> <STARTUP_OPTIONS>/usr/local/mysql/bin/mysqld --socket=/usr/local/mysql/mysql.sock --port=3306</STARTUP_OPTIONS> <OS_VERSION>x86_64-osx10.6</OS_VERSION> <MYSQL_VERSION>5.7.2-m12-log</MYSQL_VERSION> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:40 UTC</TIMESTAMP> <RECORD_ID>2_2013-09-17T15:03:24</RECORD_ID> <NAME>Connect</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS>connect</COMMAND_CLASS> <PRIV_USER>root</PRIV_USER> <PROXY_USER></PROXY_USER> <DB>test</DB> </AUDIT_RECORD>... <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:41 UTC</TIMESTAMP> <RECORD_ID>4_2013-09-17T15:03:24</RECORD_ID> <NAME>Query</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root[root] @ localhost [127.0.0.1]</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS>drop_table</COMMAND_CLASS> <SQLTEXT>DROP TABLE IF EXISTS t</SQLTEXT> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:41 UTC</TIMESTAMP> <RECORD_ID>5_2013-09-17T15:03:24</RECORD_ID> <NAME>Query</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root[root] @ localhost [127.0.0.1]</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS>create_table</COMMAND_CLASS> <SQLTEXT>CREATE TABLE t (i INT)</SQLTEXT> </AUDIT_RECORD>... <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:41 UTC</TIMESTAMP> <RECORD_ID>7_2013-09-17T15:03:24</RECORD_ID> <NAME>Quit</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER></USER> <OS_LOGIN></OS_LOGIN> <HOST></HOST> <IP></IP> <COMMAND_CLASS>connect</COMMAND_CLASS> </AUDIT_RECORD>... <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:47 UTC</TIMESTAMP> <RECORD_ID>9_2013-09-17T15:03:24</RECORD_ID> <NAME>Shutdown</NAME> <CONNECTION_ID>3</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root[root] @ localhost [127.0.0.1]</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS></COMMAND_CLASS> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:47 UTC</TIMESTAMP> <RECORD_ID>10_2013-09-17T15:03:24</RECORD_ID> <NAME>Quit</NAME> <CONNECTION_ID>3</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER></USER> <OS_LOGIN></OS_LOGIN> <HOST></HOST> <IP></IP> <COMMAND_CLASS>connect</COMMAND_CLASS> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:49 UTC</TIMESTAMP> <RECORD_ID>11_2013-09-17T15:03:24</RECORD_ID> <NAME>NoAudit</NAME> <SERVER_ID>1</SERVER_ID> </AUDIT_RECORD></AUDIT>


    <audit>:文件的根标签为<AUDIT>,并以 </AUDIT>为结束标签
    <AUDIT_RECORD> :包含一系列的必选标签和可选标签,可选标签是否出现取决于audit record类型。
    <NAME>:必选,例如<NAME>Query</NAME>,可能出现的值还包含Audit, Binlog Dump, Change user, Close stmt, Connect Out, Connect, Create DB, Daemon, Debug, Delayed insert, Drop DB, Execute, Fetch, Field List, Init DB, Kill, Long Data, NoAudit, Ping, Prepare, Processlist, Query, Quit, Refresh, Register Slave, Reset stmt, Set option, Shutdown, Sleep, Statistics, Table Dump, Time.
    <RECORD_ID>:必选,例如<RECORD_ID>28743_2013-09-18T21:03:24</RECORD_ID>,包含一些列数字和时间戳,数字表示的是记录数,每增加一条记录,数字加1.
    <TIMESTAMP>:必选,例如<TIMESTAMP>2013-09-17T15:03:49 UTC</TIMESTAMP>,包含时间戳和时区两部分,记录的是从客户端接收到的sql执行完时刻的时间。
    以下标签audit record类型决定是否出现
    <COMMAND_CLASS>:命令的类型。例如<COMMAND_CLASS>drop_table</COMMAND_CLASS>.
    <CONNECTION_ID>:例如<CONNECTION_ID>127</CONNECTION_ID>,代表客户端连接标识符的无符号整型数字。
    <DB>:mysql连接的默认数据库名称,该标签只在 <NAME>值是Connect或Change user时出现.
    <HOST>:client端的主机名,该标签只在 <NAME>值是Connect,Change user或Query时出现,例如<HOST>localhost</HOST>。
    <IP>:client端的IP地址,该标签只在 <NAME>值是Connect,Change user或Query时出现,例如<IP>127.0.0.1</IP>。
    <MYSQL_VERSION>:mysql版本号,只在 <NAME>值是Audit时出现,例如<MYSQL_VERSION>5.7.1-m11-log</MYSQL_VERSION>
    <OS_LOGIN>:外部用户,该标签只在 <NAME>值是Connect,Change user或Query时出现。
    <OS_VERSION>:表示运行数据库的服务器的操作系统,只在 <NAME>值是Audit时出现,例如<OS_VERSION>x86_64-Linux</OS_VERSION>。
    <PRIV_USER>:服务器认证的客户端名称。该标签只在 <NAME>值是Connect或Change user时出现。例如<PRIV_USER>root</PRIV_USER>。
    <PROXY_USER>:通过proxy连接到mysql的用户。该标签只在 <NAME>值是Connect或Change user时出现。
    <SERVER_ID>:mysql数据库服务器的ID号,该标签只在 <NAME>值是Audit或No Audit时出现。例如<SERVER_ID>1</SERVER_ID>。
    <SQLTEXT>:实际执行的SQL语句。该标签只在 <NAME>值是 Query 或 Execute时出现。例如<SQLTEXT>DELETE FROM t1</SQLTEXT>。
    <STARTUP_OPTIONS>:mysql数据库启动选项,该标签只在 <NAME>值是Audit时出现,例如<STARTUP_OPTIONS>/usr/local/mysql/bin/mysqld --port=3306 --log-output=FILE</STARTUP_OPTIONS>
    <STATUS>:代表sql命令的执行状态,0表示成功,其余表示有错误。例如<STATUS>1051</STATUS>。
    <STATUS_CODE>:代表sql命令的执行状态,0表示成功,1表示有错误。例如<STATUS_CODE>0</STATUS_CODE>。
    <USER>:客户端连接mysql服务器的用户名。例如<USER>root[root] @ localhost [127.0.0.1]</USER>。
    <VERSION>:表示日志文件格式的版本号。该标签只在 <NAME>值是Audit时出现。例如<VERSION>1</VERSION>。

5. 审计限制

审计日志默认存放在data路径下,由于XML文件没有经过加密,官网建议通过参数指定到特殊路径下,设置相应人员权限,进行安全控制。此外审计功能有如下情况不能进行记录:1)只有top-level(无变量定义)的语句才能进行审计,存储程序如存储过程,触发器,函数等不审计;2)涉及到外部文件的语句无法进行审计,如load data infile。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mysql5.6审计功能

标签:数据库   mysql   安全   

mysql 5.6新增了什么功能

1. 前言

        为了安全和操作的可追溯性考虑,越来越多的公司加入了审计功能。mysql5.5推出了相关的审计功能,到5.6.20功能进一步完善,算是勉强可用了,虽然细粒度方面做的不是太好,但是后续版本还是可以期待一下的。这里主要介绍下相关的功能和特性。

2. 开启审计

2.1 配置文件加载

mysql5.6中的审计是通过audit_log插件来实现的,我们可以在配置文件中加载该插件来开启。
[mysqld] plugin-load=audit_log.so 

如果希望数据库强制开启审计功能,如果不开启的话server不启动,或者审计功能不能进行时server挂住,加入
[mysqld] plugin-load=audit_log.so audit-log=FORCE_PLUS_PERMANENT 

2.2 加载插件列表

审计功能的开启还有另外一种方式,就是在命令行中安装审计插件。确保在数据库的插件目录中存在audit_log.so。[i686数据库的插件目录默认是/usr/lib/mysql/plugin,中,也可以指定参数plugin_dir]
mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so'; 

3. 参数介绍

审计参数如下:技术分享

3.1 audit_log_buffer_size 

audit_log_buffer_size :审计缓存,建议设置为4096的倍数,该参数只有在audit_log_strategy为ASYNCHRONOUS时生效。

3.2 audit_log_connection_policy

audit_log_connection_policy:记录了连接审计的信息。包含三个参数 
ValueDescription
ALLLog all connection events
ERRORSLog only failed connection events
NONEDo not log connection events
如果设置了audit_log_policy可能会被覆盖。

3.3 audit_log_current_session

audit_log_current_session:标志当前会话是否进入审计,是个只读参数,只能通过 audit_log_exclude_accounts和 audit_log_include_accounts来控制哪儿些进入会话审计。

3.4 audit_log_exclude_accounts/audit_log_include_accounts

audit_log_exclude_accounts:控制哪儿些用户可以不进入审计,字符串类型,默认可以使用逗号分隔。
audit_log_include_accounts:控制哪儿些用户可以进入审计,字符串类型,默认可以使用逗号分隔。
exclude和include同时只有一个参数生效。

3.5 audit_log_file

audit_log_file:可以用于控制审计日志的名称和路径。

3.6 audit_log_flush

audit_log_flush:控制审计日志的归档,只有在audit_log_rotate_on_size=0的时候生效,在手工重命名审计日志归档后,可以指定audit_log_flush=1来生成新的审计日志。

3.7 audit_log_format

audit_log_format:审计日志的格式,分为OLD和NEW(NEW格式在5.6.14才出现)。当更改格式的时候需要进行3个步骤:
1 :关闭数据库2:重命名当前的audit.log文件
3:更改audit_log_format参数,并重启mysql,重启后会自动生成一个新的audit.log文件
防止NEW格式和OLD格式在同一个审计日志中,会导致审计功能错误。audit_log_policy :记录了审计日志的控制策略:
ValueDescription
ALLLog all events
LOGINSLog only login events
QUERIESLog only query events
NONELog nothing (disable the audit stream

3.8 audit_log_statement_policy

audit_log_statement_policy:记录了语句的审计策略,可能会被audit_log_policy给覆盖:
ValueDescription
ALLLog all statement events
ERRORSLog only failed statement events
NONEDo not log statement events

3.9 audit_log_rotate_on_size

audit_log_rotate_on_size:审计日志的文件大小。当参数大于0的时候,当审计日志超过限制后,会自动的重命名为加时间戳后缀的日志文件。同时创建新的审计日志。

3.10 audit_log_strategy

audit_log_strategy:审计日志的刷新策略分为:
ValueMeaning
ASYNCHRONOUSLog asynchronously, wait for space in output buffer
PERFORMANCELog asynchronously, drop request if insufficient space in output buffer
SEMISYNCHRONOUSLog synchronously, permit caching by operating system
SYNCHRONOUSLog synchronously, call sync() after each request

4. 日志格式

审计日志格式是XML的形式,NEW要比OLD的标签详细一些。具体的标签信息如下:实例:
<?xml version="1.0" encoding="UTF-8"?><AUDIT> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:24 UTC</TIMESTAMP> <RECORD_ID>1_2013-09-17T15:03:24</RECORD_ID> <NAME>Audit</NAME> <SERVER_ID>1</SERVER_ID> <VERSION>1</VERSION> <STARTUP_OPTIONS>/usr/local/mysql/bin/mysqld --socket=/usr/local/mysql/mysql.sock --port=3306</STARTUP_OPTIONS> <OS_VERSION>x86_64-osx10.6</OS_VERSION> <MYSQL_VERSION>5.7.2-m12-log</MYSQL_VERSION> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:40 UTC</TIMESTAMP> <RECORD_ID>2_2013-09-17T15:03:24</RECORD_ID> <NAME>Connect</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS>connect</COMMAND_CLASS> <PRIV_USER>root</PRIV_USER> <PROXY_USER></PROXY_USER> <DB>test</DB> </AUDIT_RECORD>... <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:41 UTC</TIMESTAMP> <RECORD_ID>4_2013-09-17T15:03:24</RECORD_ID> <NAME>Query</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root[root] @ localhost [127.0.0.1]</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS>drop_table</COMMAND_CLASS> <SQLTEXT>DROP TABLE IF EXISTS t</SQLTEXT> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:41 UTC</TIMESTAMP> <RECORD_ID>5_2013-09-17T15:03:24</RECORD_ID> <NAME>Query</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root[root] @ localhost [127.0.0.1]</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS>create_table</COMMAND_CLASS> <SQLTEXT>CREATE TABLE t (i INT)</SQLTEXT> </AUDIT_RECORD>... <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:41 UTC</TIMESTAMP> <RECORD_ID>7_2013-09-17T15:03:24</RECORD_ID> <NAME>Quit</NAME> <CONNECTION_ID>2</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER></USER> <OS_LOGIN></OS_LOGIN> <HOST></HOST> <IP></IP> <COMMAND_CLASS>connect</COMMAND_CLASS> </AUDIT_RECORD>... <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:47 UTC</TIMESTAMP> <RECORD_ID>9_2013-09-17T15:03:24</RECORD_ID> <NAME>Shutdown</NAME> <CONNECTION_ID>3</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER>root[root] @ localhost [127.0.0.1]</USER> <OS_LOGIN></OS_LOGIN> <HOST>localhost</HOST> <IP>127.0.0.1</IP> <COMMAND_CLASS></COMMAND_CLASS> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:47 UTC</TIMESTAMP> <RECORD_ID>10_2013-09-17T15:03:24</RECORD_ID> <NAME>Quit</NAME> <CONNECTION_ID>3</CONNECTION_ID> <STATUS>0</STATUS> <STATUS_CODE>0</STATUS_CODE> <USER></USER> <OS_LOGIN></OS_LOGIN> <HOST></HOST> <IP></IP> <COMMAND_CLASS>connect</COMMAND_CLASS> </AUDIT_RECORD> <AUDIT_RECORD> <TIMESTAMP>2013-09-17T15:03:49 UTC</TIMESTAMP> <RECORD_ID>11_2013-09-17T15:03:24</RECORD_ID> <NAME>NoAudit</NAME> <SERVER_ID>1</SERVER_ID> </AUDIT_RECORD></AUDIT>


    <audit>:文件的根标签为<AUDIT>,并以 </AUDIT>为结束标签
    <AUDIT_RECORD> :包含一系列的必选标签和可选标签,可选标签是否出现取决于audit record类型。
    <NAME>:必选,例如<NAME>Query</NAME>,可能出现的值还包含Audit, Binlog Dump, Change user, Close stmt, Connect Out, Connect, Create DB, Daemon, Debug, Delayed insert, Drop DB, Execute, Fetch, Field List, Init DB, Kill, Long Data, NoAudit, Ping, Prepare, Processlist, Query, Quit, Refresh, Register Slave, Reset stmt, Set option, Shutdown, Sleep, Statistics, Table Dump, Time.
    <RECORD_ID>:必选,例如<RECORD_ID>28743_2013-09-18T21:03:24</RECORD_ID>,包含一些列数字和时间戳,数字表示的是记录数,每增加一条记录,数字加1.
    <TIMESTAMP>:必选,例如<TIMESTAMP>2013-09-17T15:03:49 UTC</TIMESTAMP>,包含时间戳和时区两部分,记录的是从客户端接收到的sql执行完时刻的时间。
    以下标签audit record类型决定是否出现
    <COMMAND_CLASS>:命令的类型。例如<COMMAND_CLASS>drop_table</COMMAND_CLASS>.
    <CONNECTION_ID>:例如<CONNECTION_ID>127</CONNECTION_ID>,代表客户端连接标识符的无符号整型数字。
    <DB>:mysql连接的默认数据库名称,该标签只在 <NAME>值是Connect或Change user时出现.
    <HOST>:client端的主机名,该标签只在 <NAME>值是Connect,Change user或Query时出现,例如<HOST>localhost</HOST>。
    <IP>:client端的IP地址,该标签只在 <NAME>值是Connect,Change user或Query时出现,例如<IP>127.0.0.1</IP>。
    <MYSQL_VERSION>:mysql版本号,只在 <NAME>值是Audit时出现,例如<MYSQL_VERSION>5.7.1-m11-log</MYSQL_VERSION>
    <OS_LOGIN>:外部用户,该标签只在 <NAME>值是Connect,Change user或Query时出现。
    <OS_VERSION>:表示运行数据库的服务器的操作系统,只在 <NAME>值是Audit时出现,例如<OS_VERSION>x86_64-Linux</OS_VERSION>。
    <PRIV_USER>:服务器认证的客户端名称。该标签只在 <NAME>值是Connect或Change user时出现。例如<PRIV_USER>root</PRIV_USER>。
    <PROXY_USER>:通过proxy连接到mysql的用户。该标签只在 <NAME>值是Connect或Change user时出现。
    <SERVER_ID>:mysql数据库服务器的ID号,该标签只在 <NAME>值是Audit或No Audit时出现。例如<SERVER_ID>1</SERVER_ID>。
    <SQLTEXT>:实际执行的SQL语句。该标签只在 <NAME>值是 Query 或 Execute时出现。例如<SQLTEXT>DELETE FROM t1</SQLTEXT>。
    <STARTUP_OPTIONS>:mysql数据库启动选项,该标签只在 <NAME>值是Audit时出现,例如<STARTUP_OPTIONS>/usr/local/mysql/bin/mysqld --port=3306 --log-output=FILE</STARTUP_OPTIONS>
    <STATUS>:代表sql命令的执行状态,0表示成功,其余表示有错误。例如<STATUS>1051</STATUS>。
    <STATUS_CODE>:代表sql命令的执行状态,0表示成功,1表示有错误。例如<STATUS_CODE>0</STATUS_CODE>。
    <USER>:客户端连接mysql服务器的用户名。例如<USER>root[root] @ localhost [127.0.0.1]</USER>。
    <VERSION>:表示日志文件格式的版本号。该标签只在 <NAME>值是Audit时出现。例如<VERSION>1</VERSION>。

5. 审计限制

审计日志默认存放在data路径下,由于XML文件没有经过加密,官网建议通过参数指定到特殊路径下,设置相应人员权限,进行安全控制。此外审计功能有如下情况不能进行记录:1)只有top-level(无变量定义)的语句才能进行审计,存储程序如存储过程,触发器,函数等不审计;2)涉及到外部文件的语句无法进行审计,如load data infile。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mysql5.6审计功能

标签:数据库   mysql   安全   

mysql,为什么我用命令行添加表之后,总是显示有一个警告?这警告是什么?怎么看?

能不能把那个警告的信息给出来?

你还是没有把具体的warning信息给出

1 warning是说有1个错误

如果没有列出错误的具体信息,那也没有办法了.

可能你是输入的命令有错误

mysql数据库软件怎么使用,如何连接数据?

mysql数据库软件的使用及连接方法:

一、安装MySQL。

1、准备好安装包,双击Setup.exe文件,开始mysql的安装。

2、按照提示一步一步往下执行直到安装完成。

3、安装完成之后配置MySQL服务,用以创建数据库及登录数据库账户密码:

选择Standard Configuration 标准配置,然后一路点next,直到配置好用户名密码。

更多详细信息及可能出现故障及解决方法请参考:http://jingyan.baidu.com/article/f79b7cb35c0f439144023e38.html

二、连接数据库:

 连接数据库有很多种方式,包括:

  1、使用MySQL提供的dos登录方式,登录方法:在dos输入mysql -hlocalhost -uuser -ppwd

   其中-h表示主机,-u表示用户,-p表示密码,登录成功会显示mysql>,如图:

 2、使用数据库连接工具进行连接,比如:navicat、Heidi Sql等工具都可以用来连接MySQL数据库。

3、在程序中使用jdbc方式连接。详细程序实现可以参考:http://www.cnblogs.com/cy163/archive/2008/08/22/1274413.html

三、MySQL的使用:

MySQL用于系统存储数据,其操作方法就是使用sql(structure query language 结构化查询语言)来实现对数据库的操作。

sql语句的具体写法请参考百度文库资料:http://wenku.baidu.com/view/051716e49b89680203d82594.html进行学习。

Top