返回顶部
首页 > 资讯 > 数据库 >MySQL的安全使用方式
  • 580
分享到

MySQL的安全使用方式

2024-04-02 19:04:59 580人浏览 安东尼
摘要

本篇内容介绍了“Mysql的安全使用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MySQ

本篇内容介绍了“Mysql安全使用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

 MySQL 基础知识

mysql是一个流行的关系型数据库管理系统(Relational Database Management System,RDMS),在与PHP结合应用方面,Mysql是最好的关系型数据库管理系统之一。MySQL使用不当,常常会引起致命的安全问题。

1、运行安全

为了防止攻击者通过MySQL漏洞越权获取更高的权限,不要使用系统root用户运行MySQL服务器。mysqld默认拒绝使用root运行,如果对mysqld服务需要指定用户进行运行,应该使用普通非特权用户运行mysqld,同时为数据库建立独立的linux中的MySQL账户,该账户只用于管理和运行MySQL。

在MySQL配置/etc/my.cnf文件中指定执行账户。

vim /etc/my.cnf  [mysqld]  user=mysql

这个配置使服务器用指定的用户来启动,无论是手动启动还是通过mysqld_safe或mysql.server启动,都能确保使用MySQL的身份。也可以在启动参数上进行配置,加上user参数。

/usr/local/mysql/bin/mysqld_safe --user=mysql &

默认的MySQL安装在/usr/local/mysql,对应的默认数据库文件在/usr/local/mysql/var目录下,必须保证该目录不能让未经授权的用户访问后把数据库打包复制走,所以要限制对该目录的访问。mysqld运行时,只使用对数据库目录具有读或写权限的Linux用户来运行。

MySQL主目录只允许root用户进行访问。

chown -R root /usr/local/mysql/

数据库目录只允许MySQL用户进行访问。

chown -R mysql.mysql /usr/local/mysql/var

2、密码安全

默认安装的MySQL的root用户密码是空密码,为了安全起见,必须修改为强密码,即至少8位,由字母、数字和符号组成的不规律密码。使用MySQL自带的mysqladmin命令修改root密码。

mysqladmin -u root passWord "new-password" //使用mysqladmin修改密码

同时可以使用下面的命令登录数据库对密码进行修改。

mysql>use mysql  mysql>update user set pas sword=pas sword('new-password') where  user='root';  mysql>flush privileges; // 强制刷新内存授权表,否则使用的还是在内存缓冲的口令

3、账号安全

系统MySQL的默认管理员名称是root,而一般情况下,数据库管理员都没有进行修改,这在一定程度上为系统用户密码暴力破解的恶意攻击行为提供了便利,应该修改为复杂的用户名,加强账号的安全,同时不要使用admin或者administrator,因为它们也在易猜解的用户字典中。

mysql>update user set user="new-root-name" where  user="root";  mysql>flush privileges; // 强制刷新内存授权表,否则使用的还是在内存缓冲的口令

需要正确地给用户分配权限,不要将全部权限分配给普通用户,有选择性地分配读写权限,如只分配查询权限给用户。

mysql>grant SELECT on db.table to username@'localhost'

不要将with grant option授权给普通用户,防止普通用户将权限授予他人,造成管理混乱。

表1是常用的权限及说明。

MySQL的安全使用方式

表1  常用权限及说明

4、数据库安全

默认MySQL安装初始化后会自动生成空用户和test库,进行安装测试,这会对数据库的安全构成威胁,有必要全部删除,最后的状态只保留单个root即可。当然,以后可以根据需要增加用户和数据库。

mysql>show databases;  mysql>drop database test; // 删除数据库test  use mysql;  delete from db; // 删除存放数据库的表信息,因为还没有数据库信息  mysql>delete from user where not (user='root'); // 删除初始非root的用户  mysql>delete from user where user='root' and password=; // 删除空密码的root  Query OK, 2 rows affected(0.00 sec)  mysql>flush privileges; // 强制刷新内存授权表

5、限制非授权IP访问

如果是单机运行MySQL,推荐开启skip-networking,可以彻底关闭MySQL的tcp/IP连接方式。

# my.ini  skip-networking

如果是固定IP访问MySQL,可以在配置文件中增加bind-address=IP,前提是关闭skip-networking。

bind-address=10.10.1.1

6、文件读取安全

在MySQL中,使用load data local infile命令提供对本地文件的读取功能。在5.0版本中,该选项是默认打开的,该操作会利用MySQL把本地文件读到数据库中,然后攻击者就可以非法获取敏感信息。假如不需要读取本地文件,应将其关闭。

网络上流传的一些攻击方法中就有用到load data local infile的,同时它也是很多新发现的SQL Injection攻击利用的手段。攻击者还能通过使用load data local infile装载“/etc/passwd”进一个数据库表,然后用SELECT显示它,这个操作对服务器的安全来说是致命的。

可以在my.cnf中添加local-infile=0参数。

vim /etc/my.cnf  [mysqld]  set-variable=local-infile = 0

或者在MySQL启动时添加local-infile=0参数。

/usr/local/mysql/bin/mysqld_safe --user=mysql --local-infile=0 &

7、常用安全选项

下面是一些MySQL自己提供的安全选项,在使用MySQL服务时可以根据自己的需要进行灵活的配置。

--allow-suspicious-udfs

该选项控制是否可以载入主函数只有xxx符号的用户定义函数,如xxx_init()、xxx_deinit()、xxx_reset()、xxx_clear()、xxx_add()等函数。默认情况下,该选项关闭,并且只能载入至少有辅助符的UDF。这样可以防止从未包含合法UDF的共享对象文件载入函数。

--local-infile[={0|1}]

如果用--local-infile=0启动服务器,则客户端不能使用LOCAL IN LOAD DATA语句。

--old-passwords

强制服务器为新密码生成短(pre-4.1)散列密码。当服务器必须支持旧版本客户端程序时,这对于保证兼容性很有作用。

(OBSOLETE) --safe-show-database

在以前版本的MySQL中,该选项使SHOW DATABASES语句只显示用户具有部分权限的数据库名。在MySQL 5.1中,该选项不再作为现在的默认行为使用,有一个SHOW DATABASES权限可以用来控制每个账户对数据库名的访问。

--safe-user-create

如果启用,用户不能使用GRANT语句创建新用户,除非用户有mysql.user表的INSERT权限。如果要让用户具有授权权限来创建新用户,应给用户授予下面的权限。

mysql> GRANT INSERT(user) ON mysql.user TO'user_name'@'host_name';

这样确保用户不能直接更改权限列,必须使用GRANT语句给其他用户授予该权限。

--secure-auth

不允许鉴定有旧(pre-4.1)密码的账户。

--skip-grant-tables

这个选项导致服务器根本不使用权限系统,从而使得每个人都有权完全访问所有数据库!(通过执行mysqladmin flush-privileges或mysqladmin eload命令,或执行FLUSH PRIVILEGES语句,可以告诉一个正在运行的服务器再次开始使用授权表。)

--skip-name-resolve

主机名不被解析。所有在授权表的Host的列值必须是IP号或localhost。

--skip-networking

在网络上不允许TCP/IP连接。所有到mysqld的连接必须经由Unix套接字进行。

--skip-show-database

使用该选项,只允许有SHOW DATABASES权限的用户执行SHOW DATABASES语句,该语句显示所有数据库名。不使用该选项,允许所有用户执行SHOW DATABASES,但只显示用户有SHOW DATABASES权限或部分数据库权限的数据库名。请注意,全局权限指数据库的权限。

8、数据安全

在生产环境中,数据库可能会遭遇各种各样的不测从而导致数据丢失,如硬件故障、软件故障、自然灾害、恶意攻击者攻击、误操作等都会对数据造成损坏或丢失。为了在数据丢失之后能够及时恢复数据,需要定期对数据进行备份。

备份数据的策略要根据不同的业务场景进行定制,大致有几个参考数值,可以根据这些数值来定制符合特定环境中的数据备份策略。

(1)能够容忍丢失多少数据。

(2)恢复数据需要多长时间。

(3)需要恢复哪些数据。

根据业务场景的需要来选择备份方式是完整备份、增量备份还是差异备份。

“MySQL的安全使用方式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL的安全使用方式

本文链接: https://lsjlt.com/news/56670.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL的安全使用方式
    本篇内容介绍了“MySQL的安全使用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MySQ...
    99+
    2024-04-02
  • 如何使用rpm方式安装mysql
    今天就跟大家聊聊有关如何使用rpm方式安装mysql,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。查看安装以及卸载# 查看 rpm&nb...
    99+
    2024-04-02
  • Linux下如何使用yum的方式安装mysql
    这篇文章将为大家详细讲解有关Linux下如何使用yum的方式安装mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。\1. 先检查系统是否装有mysql[root@localhost ~]#...
    99+
    2023-06-27
  • windows系统的安全模式使用方法和11项使用技巧
    对于计算机小白来说,或者对电脑系统没有深入了解的人都不清楚Windows系统的安全模式是干什么用的、怎么退出安全模式等操作,下面小编详细介绍各种情况下的Windows系统安全模式使用方法和技巧。 1、基础知识  安全模...
    99+
    2023-06-08
    windows 安全模式 方法 模式 使用 系统
  • win10安全模式如何使用
    本篇内容介绍了“win10安全模式如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win10安全模式有什么用:答:安全模式可以方便地检...
    99+
    2023-06-30
  • linux中怎么使用yum方式安装mysql
    今天就跟大家聊聊有关linux中怎么使用yum方式安装mysql,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。linux下使用yum安装mysql&...
    99+
    2024-04-02
  • MySQL中CURRENT_TIMESTAMP的使用方式
    目录CURRENT_TIMESTAMP的使用timestamp使用CURRENT_TIMESTAMP报错CURRENT_TIMESTAMP的使用 众所周知,MySQL的日期类型可以使...
    99+
    2024-04-02
  • MySQL的rpm安装方式
    本篇内容主要讲解“MySQL的rpm安装方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的rpm安装方式”吧!用于安装MySQL的rpm包如下:Ta...
    99+
    2024-04-02
  • 通过yum方式安装mySql数据库的全过程
    目录Yum方式安装mysql服务修改密码:总结Yum方式安装mysql服务 步骤一:首先下载mysql的yum源配置 wget http://dev.mysql.com/get/mysql57-community-re...
    99+
    2022-07-29
    Linux yum安装mysql yum安装mysql客户端 yum mysql
  • MySQL安装方式
    一、单实例_rpm1、上传安装包tar -xf mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar2、检查是否安装 rpm -qa | grep -i mysql rpm -q...
    99+
    2024-04-02
  • MySQL的driverClassName与url使用方式
    目录driverClassName与url的使用driverClassNameurl常见数据库driverClassname和urldriverClassName与url的使用 dr...
    99+
    2024-04-02
  • Windows下使用MySQL Installer方式安装MySQL服务及组件
    下文我给大家简单讲讲关于Windows下使用MySQL Installer方式安装MySQL服务及组件,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看Windows下使用MySQL Install...
    99+
    2024-04-02
  • 使用二进制方式安装MySQL-5.7.24的详细步骤
    下面讲讲关于使用二进制方式安装MySQL-5.7.24的详细步骤,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完使用二进制方式安装MySQL-5.7.24的详细步骤这篇文章你一定...
    99+
    2024-04-02
  • win10进入安全模式的方法
    这篇文章将为大家详细讲解有关win10进入安全模式的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。win10安全模式教程:安全模式对于大多数用户是一种解决电脑无法启动时使用的工具。安全模式是Windo...
    99+
    2023-06-10
  • Win11怎么进入安全模式?Windows 11进入安全模式的方法
    Windows安全模式是一个非常强大的功能,任何病毒都无法在安全模式下运行,是解决电脑系统故障非常不错的一个模式。安装win11以后想要进入安全模式,该怎么进入呢?下面我们就来看看windows11进入安全模式的技巧。 ...
    99+
    2023-05-23
    Win11 安全模式 Windows11
  • 如何用rpm方式安装mysql
    小编给大家分享一下如何用rpm方式安装mysql,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查看安装以及卸载# 查看 rpm ...
    99+
    2024-04-02
  • mysql开启/关闭安全模式
    在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常。 异常内容:Error Code: 1175. You are using safe update...
    99+
    2023-08-31
    mysql 数据库 sql
  • mysql安装rpm方式
    查看系统中安装的rpm包rpm -qa | grep mysql卸载自带的mysqlrpm  -e  --nodeps   * 解压mysqltar -xv...
    99+
    2024-04-02
  • glibc方式安装mysql
    下载安装包 mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz创建mysql用户useradd -r mysql -s /sbin/nologin解压文件tar -zxv...
    99+
    2024-04-02
  • yum方式安装mySql
    Yum方式安装mysql服务 步骤一:首先下载mysql的yum源配置 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 步骤二:安装mys...
    99+
    2023-08-18
    mysql 数据库 dba
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作