加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

Oracle MySQL云服务上的MySQL企业版审计

发布时间:2021-01-11 20:18:01 所属栏目:电商 来源:网络整理
导读:《Oracle MySQL云服务上的MySQL企业版审计》要点: 本文介绍了Oracle MySQL云服务上的MySQL企业版审计,希望对您有用。如果有疑问,可以联系我们。 Oracle Cloud Service似乎是唯一个即使你只提交了创建RDS服务的请求,也会自动帮你创建一个虚拟主机,并且提供
副标题[/!--empirenews.page--]

《Oracle MySQL云服务上的MySQL企业版审计》要点:
本文介绍了Oracle MySQL云服务上的MySQL企业版审计,希望对您有用。如果有疑问,可以联系我们。

Oracle Cloud Service似乎是唯一个即使你只提交了创建RDS服务的请求,也会自动帮你创建一个虚拟主机,并且提供主机登录权限的服务提供商,也许这就是Oracle一直在宣称的IaaS+PaaS的整合.

在创建MySQL Cloud Service时,会要求提供一个SSH登录密钥,所有的Oracle云服务主机登录用户都是opc,因此在服务创建完毕,收到通知邮件之后,就可以通过以下命令登录到云主机上.

ssh -i id_rsa_oracle_cloud_enmotech opc@your_host_ip

登录到主机以后,屏幕欢迎词是个小惊喜,Oracle贴心得显示了MySQL运行状态和存储使用量的提示.

在比较了多方的RDS之后,Oracle MySQL Cloud Service确实如一直以来宣传的那样,提供了最多的安全选件功能,如果我们用MySQL Workbench登录到数据库中,在Server Status页面可以看到:SSL连接,PAM验证,密码校验,数据库审计等多种安全功能全部是开启的.

而与之相比,阿里云MySQL RDS提供的安全功能就少的可怜了.说少不合适,是一项安全功能都没开启.

Oracle对于数据库安全性的看重确实超越了大多数数据库提供商,而这也带来了一些小麻烦.

在创建MySQL云服务的时候,需要指定数据库root用户的密码,这个密码有比较强的安全要求,需要有大写、小写英文字母,有数字,同时还需要有特殊字符(比如#).因此在后续创建Login Path时,在mysql_config_editor命令提示输入密码的时候,需要在密码前后加上双引号(比如”Passw#rd”),否则会一直出现拒绝访问的提示.

opc用户没有办法直接登录MySQL,需要切换到oracle用户

使用密码直接登录是没有问题的
创建Login Path,仍然输入上述一样的密码
[oracle@mysql-cloud-mysql-1 ~]$ mysql_config_editor set --host=localhost -
-user=root --password
Enter password:
检查确认Login Path已经创建成功
直接登录报错
[oracle@mysql-cloud-mysql-1 ~]$ mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
在密码前后加上双引号重新创建Login Path
再次登录,成功

在进行Audit功能的检查之前,对于默认的mysql命令行提示只有mysql> 这样简陋的显示不能忍,要加上当前登录的用户和数据库名称.在oracle用户的.my.cnf下增加以下行.

[mysql]
prompt=u@h [d]>_
再次登录,mysql命令行的提示就比较顺眼了.

接下来进入本文的正题,在Oracle MySQL Cloud Service中默认是如何设置Audit的?
首先先检查一下audit_log的相关参数设置.

那么audit_log_file=audit.log表示仍然使用了默认的名字,到MySQL的数据文件目录中检查一下audit.log文件的存在.

这里可以看到总共的audit日志已经有1.9GB之大,在第一个audit.log达到audit_log_rotate_on_size参数设置的大小之后,自动切换成了新的audit.log.

题外话,之所以有这么巨大的audit.log,是由于启用了MySQL Enterprise Monitor,不断地记录了Monitor进程的登录和退出.

为了方便后面观察audit.log,先将Monitor停止.

接下来进行一些常规操作,并观察audit.log文件的输出内容.

1. 用root用户登录,在audit文件中显示一条Connect类型的记录.TIMESTAMP记录了时间,USER标签记录了登录的用户,HOST标签记录了登录的机器,COMMAND_CLASS为connect.

2. 尝试直接CTAS一张测试表,在enforce_gtid_consistency=ON时会报1786错误,这是GTID特性决定的.

在audit.log中也记录下了这次报错的操作,STATUS标签为错误代码1786,STATUS_CODE标签值为1表示这条SQL没有成功执行,SQLTEXT标签记录了整个SQL语句.

3. 下面的三条语句,select,create table,insert均没有在audit.log中记录下来.

这样的行为是由audit_log_statement_policy=ERRORS参数决定的,默认只记录报错的SQL,而不会记录所有的执行语句.

4. 将audit_log_statement_policy参数修改为ALL,再执行同样的select语句.

可以发现audit.log中已经有记录了.

结论

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读