文章目录
1、原题
1.1、英文原题
What are three methods to reduce MySQL server exposure to remote connections?
A、setting --skip-networking when remote connections are not required
B、using SSL when transporting data over remote networks
C、setting --mysql_secure_configuration to enable paranoid mode
D、setting specific GRANT privileges to limit remote authentication
E、using the sql_mode=STRICT_SECURE after connections are established for encrypted communications
1.2、中文翻译
减少MySQL服务器暴露于远程连接的三种方法是什么?
A、 设置–skip-networking
B、 在远程网络上传输数据时使用SSL
C、 设置–mysql_secure_configuration以启用偏执模式
D、 设置特定的GRANT权限以限制远程身份验证
E、 在为加密通信建立连接后使用sql_mode=STRICT_SECURE
1.3、答案
A、B、D
2、题目解析
2.1、题干解析
本题考察MySQL如何避免暴露远程连接和控制远程连接权限。
2.2、选项解析
- 设置–skip-networking可以让客户端无法远程接入,所以选项A正确。
- SSL可以对连接进行加密,所以选项B正确。
- 没有mysql_secure_configuration这个系统变量,所以选项C错误。
- 通过授权可以控制远程连接的权限,所以选项D正确。
- SQL模式是用来控制MySQL支持的语法和数据检查的,而不是用来控制连接的,所以选项E错误。
3、知识点
3.1、知识点1:MySQL服务器的SQL模式
3.1.1、sql_mode简介
- SQL模式的意义:SQL模式会影响到MySQL支持的SQL语法和数据验证检查,并不会影响连接,通过设置sql_mode系统变量实现模式的修改。
- SQL模式的级别:DBA可以设置全局级别的SQL模式,而每个用户可以设置会话级别的SQL模式。
- SQL模式的使用:
- 可以在命令行上使用–sql-mode="modes "选项。或者在选项文件中使用sql-mode=“modes”
- 可以在运行时改变SQL模式,通过使用SET语句设置全局或会话sql_mode系统变量。设置GLOBAL变量需要SUPER权限,并影响到从那时起连接的所有客户端的操作。设置SESSION变量只影响到当前的客户端。每个客户可以在任何时候改变它的session sql_mode值。要确定当前的全局或会话sql_mode设置,选择其值。
SET GLOBAL sql_mode = 'modes';
SET SESSION sql_mode = 'modes';
- 模式内容:模式内容是一个由逗号分隔的不同模式的列表。要明确地清除SQL模式,请在命令行中使用-sql-mode=“”,或在选项文件中使用sql-mode=“”,将其设置为一个空字符串。
3.1.2、sql_mode的一些选项值
4、总结
- SQL模式用来控制MySQL支持的语法和数据检查方法,主要通过设置sql_mode系统变量来实现。
- sql_mode系统变量既可以在启动时的命令行参数里,也可以在配置文件里,也可以在运行时通过修改系统变量的方式修改。
- 只有SUPER账户可以修改全局级别的sql_mode,一旦修改,就会影响从此刻开始的所有客户端连接。