MySQL中涉及安全性的SQL语句

2024年 7月 17日 36.9k 0

您的MySQL安全吗?数据是最有价值的资产,数据安全已经成为重中之重。本篇将介绍如何使用SQL语句确保MySQL的安全性。

为什么是SQL而不是其他?使用SQL管理数据库相比较其他方法而言具有如下优势:

  • DBA不需要使用SSH等方法登录到MySQL所在的操作系统执行操作,可以省略操作系统的权限问题。

  • DBA的操作可以通过捕获SQL进行审计。

  • 操作系统管理员无需触碰MySQL。

  • DevOps友好——面向服务

  • 适合自动化修复

MySQL从8.0开始,将许多配置管理任务应用到SQL语句,接下来我们将逐一梳理。

首先,用户第一件事情是增强root账户的密码安全性。当用户安装MySQL时,根据所选的安装包进行初始密码的输入,Window的安装向导和DEB的安装过程中会提示输入root账户的初始密码,rpm的安装方式则会生成一个随机初始密码。使用随机密码连接MySQL后,首先要执行更改密码的语句,否则将报错。更改密码使用如下SQL:

    ALTER USER root@localhost IDENTIFIED BY '';

    注意,MySQL中可能会存在多个root账户,修改的密码仅仅是“root@localhost”,考虑安全性问题,可以删除全局账户,后缀为“%”,如果需要远程连接,需要对主机名进行限制。

    设置密码策略。相关组件是否已安装?可以通过以下SQL语句进行查看:

      SELECT component_urn, 'PASSWORD Policy Component Installed?' as Note, if(count(component_urn) > 0, 'YES', 'NO') as Answer FROM mysql.component where component_urn='file://component_validate_password' group by component_urn;

      查看密码策略的SQL语句:

        SELECT VARIABLE_NAME, VARIABLE_VALUE
        FROM performance_schema.global_variables
        where VARIABLE_NAME like 'valid%password%'
        OR VARIABLE_NAME='default_password_lifetime';

        改变密码策略的SQL语句:

          #安装组件
          INSTALL COMPONENT 'file://component_validate_password';
          #设置策略
          set persist validate_password.check_user_name='ON';
          set persist validate_password.dictionary_file='

          相关文章

          Oracle如何使用授予和撤销权限的语法和示例
          Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
          下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
          社区版oceanbase安装
          Oracle 导出CSV工具-sqluldr2
          ETL数据集成丨快速将MySQL数据迁移至Doris数据库

          发布评论