你的位置:首页 > 数据库

[数据库]mysql 开发进阶篇系列 55 权限与安全(安全事项 )

mysql 开发进阶篇系列 55 权限与安全(安全事项 ) - 花阴..._博客园

mysql 开发进阶篇系列 55 权限与安全(安全事项 ) 一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问...

mysql 开发进阶篇系列 48 xtrabackup (增量备份与恢复) | 易学教程

由匿名(未验) 提交于 2018-10-13 06:55:22 ...-- 恢复之后,更改data目录权限为mysql [root@hsr ...文章来源: mysql 开发进阶篇系列 48 xtrabackup (...

mysql安装后无法启动的问题_百度知道

1个回答 - 回答时间: 2017年4月23日

130702 14:14:34 [ERROR] Failed to create a socket for IPv4 #39;0.0.0.0#39;: errno: 13. 130702 14:14:34 [ERROR] Can#39;t create IP socket:...更多关于mysql 开发进阶篇系列 55 权限与安全(安全事项 )的问题gt;gt;

MySQL权限详解 - 陈天刚 - 博客园

权限存储在mysql库的user, db, tables_priv, columns...• Super权限代表允许执行一系列数据库管理命令,包括...发表于 2017-11-24 11:55 陈天刚 阅读(...

BAT的55道sql面试题——答案整理!_搜狐教育_搜狐网

这个列表是Mysql器安全模型的基础,它有助于排除用户无法连接的问题。 ...这些权限表分别user,db,table_priv,columns_priv和host。 55、Mysql中有...

mysql5.1.55安装步骤_百度文库

nbsp;评分:5/5nbsp;3页

/home/ssh/mysql-5.1.55.tar.gz 将 mysql-5....注意事项: 重新编译时,需要清除旧的对象文件和缓存...添加如执行权限 )、登录 8)、登录 mysql 数据库 ...

MySQL的进阶实战篇 - CSDN博客

实战篇的延续,是MySQL的进阶内容的记录,本篇主要...同样会引发性能问题,在实际生产环节中部署时务必进行...对于这类用户只赋予对应视图的select操作权...

去BAT面试完的Mysql面试题总结(55道,带完整答案) - 简书

54、mysql有关权限的表都有哪几个? 55、mysql中有哪几种锁? 面试题解析 作者...本系列:demo下载 (一)MySQL优化笔记(一)--库与表基本操作以及数... Jac...

MySQL系列(一)---基础知识大总结 - jiajun_geek - 博客园

随笔- 55 文章- 0 评论- 102 MySQL系列(一)--...SHOW GRANTS 显示授予用户的安全权限 SHOW ERRORS SHOW...这里注意的还是列的问题,后面的SELECT语句后...

linux下安装mysql5.1.55_loveflying_新浪博客

mirrors.ircam.fr/pub/mysql/Downloads/MySQL-5.1/mysql-5.1.55....#chmod +x mysql.server //设置mysql.server可执行权限。 #./mysql.server ...

MySQL 系列(二) 你不知道的数据库操作 - suoning - 博客园

系列(一) 生产标准线上环境安装配置案例及棘手问题...mysql - 用户权限相关数据 test - 用于用户测试数据...#10楼 2016-08-15 21:55 马三小伙儿 不错...

kettle调度mysql存储过程问题_ITPUB博客

(version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy...时不光用户要有execute的权限,还需要对mysql.proc具有访问权限, 我这里测试...

...数据库技术与应用 MYSQLMYSQL5 55 5器配置器配置v2 ...

第一章MYSQL概述与系统安装第11页数据库技术与应用 数据库技术与应用 MYSQLMYSQL5 55 5器配置器配置v2 选择MYSQL应用方式 Developer Machine ...

MySQL远程连接ERROR 2003 (HY000):Can#39;t connect to My..._红黑联盟

问题描述: 从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can#39;t connect to MySQL server on #39;xxx.xxx.xxx.85#39;(111)错误。 [mys...

Linux公社 - Linux系统门户网站

10-17CentOS 7.4 64位安装配置MySQL8.0Linux编程...10-17Ubuntu Server下Docker实战 02: Docker进阶配 ...Linux编程 器应用 Linux安全 友情链接 Linux...

Win7下Redmine2.0.3+Mysql55+Ruby1.8.7成功安装记录分..._脚本之家

原来Ruby开发团队称,将于今年6月份停止对Ruby 1.8....sc这句是配置成自动,注意=后面的空格,MySQL55是...这是由于Redmine自带的WebrickWeb发布的问...

OPEN开源论坛频道首页 - IT开发人员交流互动社区

MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker所有 已关闭 未关闭 最新活跃 最新活跃 最新提问 热门问题 投票最多 5 投票 28 回答...

51CTO. - 技术成就梦想 - 中国领先的IT技术网站

,器被攻击的事件屡见不鲜,如何保障器安全是IT运维界广泛关注的问题。...阿里P8架构师谈:MySQL数据库的索引原理 从零进阶--教你如何使用Filebeta实现...

55:Mysql用户管理|常用sql语句|mysql数据库备份恢复 - 芬野de博客

摘要: 1、Mysql用户管理; 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限; 语法: grant all on *.* to #39;user#39;@#39;12...

...版_Max(TM)服装鞋帽进销存管理系统2.2.4.7MySQL网..._华军软件园

下载地址nbsp;nbsp;nbsp;专为服装、鞋帽行业量身定制的管理软件,适用于使用电脑进行采购、销售、仓储管理的服装鞋帽类各大、中、小企业。美观简...龙门昆山峡漂流需要带什么?昆山峡漂流注意事项?清远古龙峡漂流图片?古龙峡漂流怎么样?龙凤山庄影视基地拍过哪些片子?深圳合租记在龙凤山庄拍过吗?深圳合租记在东莞龙凤山庄取景拍摄的吗?龙凤山庄影视度假村简介?河源市第十一届客家文化旅游节什么时候?河源客家文化旅游节哪里好玩?广东河源客家文化节什么时候开幕?河源客家文化节几号开始?北京昌平天气 北京昌平天气 北京昌平天气 北京昌平天气 北京昌平天气 北京昌平天气 北京昌平天气预报 北京昌平天气预报 北京昌平天气预报 北京昌平天气预报 北京昌平天气预报 北京昌平天气预报 北京昌平邮编 北京昌平邮编 北京昌平邮编 北京昌平邮编 北京昌平邮编 北京昌平邮编 北京长城 北京长城 北京长城 北京长城 北京长城 北京长城

一. 操作系统层面安全

    对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解。

  1. 严格控制操作系统账号和权限

    在数据库服务器上要严格控制操作系统的账号和权限,在安装mysql时就要重视安全问题。
    (1) 锁定mysql用户。
    (2) 其它任何用户都采取独立的账号登录,管理员通过mysql专有用户管理mysql服务,或者通过 root su到mysql用户下进行管理。
    (3) mysql用户目录下,除了数据文件目录,其它文件和目录属主都改为root。

    我本地mysql服务器上数据目录,路径:datadir=/usr/local/mysql/data, 属主为mysql, 如下所示:
      

 

  2. 尽量避免以root权限运行mysql

    mysql安装完毕后,一般会将数据目录属主设置为mysql用户,而将mysql软件目录的属主设置为root。这样做的目的是当使用mysql用户启动数据库时,可以防止任何具有file权限的用户能够用root创建文件。而如果使用root用户启动数据库,则任何具有file权限的用户都可以读写root用户的文件。这样会做系统造成严重的安全隐患。

    下面给mysql系统用户设置密码hsrjs*2018
      
    使用系统用户mysql通过xshell连接到linux服务器,启动mysql成功,如下所示:
      
    下面案例:试试test系统用户连接mysql服务,如果启动成功则有安全隐患,下面是启动失败。
      
    下面案例:试试test系统用户访问data目录,如果访问成功则有安全隐患,下面是访问失败。
      

  3. 防止dns欺骗
    创建mysql用户时,user权限表的host可以指定域名或者ip地址, 但是如果指定域名,就可能带来如下安全隐患: 如果域名对应的ip址址被恶意修改,则数据库就会被恶意的ip地址进行访问,导致安全隐患(这里不再深入)。

 

二. 数据库层面安全

  2.1 删除匿名账号
    有些版本中,安装完mysql后,会自动安装一个账号, 在mysql5.7 里没有。

  2.2  给root账号设置口令
    有些版本中,安装完mysql后,root 默认口令为空, 在mysql 5.7中安装后有默认密码。

  2.3  设置安全密码
    密码的安全体现在以下两个方面:(1) 设置安全的密码,建议使用6位以上字母,数字,下画线和一些特殊字符组合而成的字符串。(2) 使用密码期间尽量保证使用过程安全,不被别人窃取。对于第二点,在使用密码时,日常工作中一般有几下几种方式。

    a. 方法1 直接将密码写在命令行中,如下所示:
      
    b. 方法2使用交互式输入密码,如下所示:
      
    c.  方法3 将用户名和密码写在配置文件里面,连接的时候自动读取,比如应用连接数据库或者执行一些批处理脚本,对于这种方式,mysql提供了在my.cnf里配置,如下所示:
      
      
    对于my.cnf配置文件要进行严格的权限控制(先改成mysql属主,再设置成600),如下:

[root@hsr ~]# chown -R mysql.mysql /etc/my.cnf[root@hsr ~]# chmod 600 /etc/my.cnf[root@hsr ~]# ls -l /etc/my.cnf-rw------- 1 mysql mysql 1072 10月 22 15:48 /etc/my.cnf-- 下面使用test系统用户查看,提示权限不够[root@hsr ~]# su test[test@hsr root]$ cat /etc/my.cnfcat: /etc/my.cnf: 权限不够

    以上三种方法,第1种方法最不安全,因为是明文。第2种方法安全,但要交互。第3种方便,但要将配置文件设置严格的存取权限。

  2.4 只授予账号必须的权限

    在很多情况下,DBA 为了方便,给用户all privileges权限,这个权限超过了一般应用需要的权限,比如drop_priv等,这些权限如果误操作,将会产生严重后果。

  2.5 除root外,任何用户不应有mysql库user表的存取权限。

    由于mysql中可以通过更改mysql数据库的user表进行权限的增加,删除,变更等操作,因此除了root以外,任何用户都不应该拥有对user表存取权限(select,update,insert,delete等),比如:在前面章节创建的z1@localhost用户,拥有了all privileges 权限,就能修改user表数据,如果修改了root用户密码,将导致root用户登录mysql失败。

  2.6 不要把file, process,super权限授予管理员以处的账号

     a. file权限主要作用是:(1)将数据库的信息通过select .. into outfile.. 写到服务器上有写入权限的目录下。(2)可以将有读权限的文本文件通过load data infile.. 命令写入数据库表,如果表中存放很重要的信息,对系统造成很大安全隐患。

    b. process 权限能被用来执行“show processlist” 命令,查看当前所有用户执行查询的明文文本。

    c. super权限能执行kill命令,终掉其它用户进程(SHOW PROCESSLIST的ID进程值)。

-- 例如kill掉进程11SHOW PROCESSLISTkill 11

      

  2.7 drop table 命令并不收回以前的相关访问授权

    drop表的时候,其它用户对此表的权限并没有被收回,这样导致重新创建同名的表时,以前其它用户对此表的权限会自动赋予,进而产生权限外流。因此在删除表时,要同时取消其它用户在此表的相应权限。

  2.8  使用ssl

    ssl 是(secure socket yayer安全套接字层)是一种安全的传输协议,用于保障在internet上数据传输的安全。要使用ssl转输,需要先运行mysql_ssl_rsa_setup生成证书,配置my.cnf,重启服务,配置mysql用户(这里不在深入)。

-- 判断是否启用sslSHOW GLOBAL VARIABLES LIKE 'have_%ssl';

      

  2.9 最好给每个用户加上访问ip限制

    在创建用户的时候,可以指定user表host字段的ip或者hostname, 只有符合授权的ip或者hostname才可以进行数据库访问。

  2.10  其它

    (1) skip-grant-tables
      在忘记密码时,可以在my.cnf中加入skip-grant-tables,mysql用户登录后,在设置新密码。这个功能在mysql 开发进阶篇系列 29 数据库二进制包安装中有讲到。skip-grant-tables是个选项是使服务器不使用权限系统,给每个mysql用户完全访问所有数据库的权力。能过执行 mysqladmin flush-privileges或 mysqladmin reload或flush privileges语句,可以让一个正在运行的服务器再次开始使用授权表。