本文由ilanniweb提供友情赞助,首发于烂泥行天下

想要获得更多的文章,可以关注我的微信ilanniweb

其实这篇文章很早就想写了,但是一直没有时间。刚好今天下午稍微空了点,就把这篇文章整理出来。

有关phpmyadmin的文章,在百度一搜,能搜出来很多。这篇文章我就介绍下,如何通过phpmyadmin控制开发人员对数据库的操作。

当然有关数据库的安全,我们可以从三个方面进行考虑:

1)、mysql数据库服务器,包括服务器本身的安全等。

2)、mysql访问权限,包括数据库用户权限,以及访问数据库方法等。

3)、mysql数据库访问后的安全,包括是否允许导出数据等。

今天我们通过phpmyadmin来控制开发人员对数据库的操作,其实就是结合第二点和第三点来禁止用户访问数据库后导出数据。

一、phpmyadmin安装

首先我们来先安装phpmyadmin,在此我们使用的是源码方式进行安装,而且安装的是最新版4.6.4,如下:

wget https://files.phpmyadmin.net/phpMyAdmin/4.6.4/phpMyAdmin-4.6.4-all-languages.zip

unzip phpMyAdmin-4.6.4-all-languages.zip -d /data/dg/

mv /data/dg/phpMyAdmin-4.6.4-all-languages/ /data/dg/app_db/

chmod 755 -R /data/dg/app_db/

注意:phpmyadmin需要lnmp环境,所以在运行phpmyadmin之前,需要把相关的基础的环境安装好。

phpmyadmin解压安装完毕后,我们再来配置下nginx,如下:

在此我开启了nginx的目录索引功能,主要是考虑到了如果有多个数据库的话,我们可以通过目录名称的方式进行区分。

比如,我们线上的数据库如下:

现在访问一下,如下:

通过上图,我们可以很明显的看出,目前已经可以正常访问phpmyadmin了,但是需要我们输入相关的用户名和密码。

二、phpmyadmin免密码配置

第一章节中,我们已经安装好了phpmyadmin,这一章节我们来配置下phpmyadmin,免密码登陆访问。

在此我们以app_db这个数据库为例。要实现免密码登陆访问之前,我们还需要先在mysql数据库中创建一个针对app_db数据库的只读用户ilanniread。

创建sql语句如下:

mysql -hrm-bp183j9f186nd4933.mysql.rds.aliyuncs.com -uroot -p'ilanni' -e "grant select on app_db.* to 'ilanniread'@'%' identified by 'readonlyQWE';

ilanniread创建完毕后,我们现在来修改phpmyadmin的配置文件config.default.php。

对于config.default.php文件,我们只需要修改106、252、259行,其中第106行是数据库的连接地址,而第252行和259行分别是数据库的用户名和密码。如下:

修改完毕后,我们再来访问下,看看实际的效果,如下:

通过上图,我们可以很明显的看到,目前访问phpmyadmin是不需要输入数据库的用户名和密码了。

而且通过这样做以后,我们也可以让开发人员不需要知道数据库实际的地址以及数据库的用户名和密码,相对来说安全性还是提高了不少。

三、禁止phpmyadmin导出数据

第二章节,我们配置了phpmyadmin的免密码访问,现在再来配置如何禁止通过phpmyadmin导出查询出来的数据。

默认情况下,phpmyadmin是可以导出整个数据库的,如下:

为了防止开发人员私自导出查询出来的结果,我们可以这样处理,把phpmyadmin根目录下的tbl_export.php或者export.php文件进行重命名即可,如下:

mv export.php export.php.bak

修改完毕后,我们再来导出数据看看,如下:

通过上图,我们可以很容易的看出目前无法把数据导出,这样就达到了我们禁止phpmyadmin导出数据的目的。

注意:export.php文件是针对整个数据库的导出的,如果要禁止查询后的导出,那么需要我们重命名tbl_export.php文件即可。

PS:安全是相对的,没有绝对的安全,我们只能做到防君子不防小人。

烂泥:数据库管理之phpmyadmin免密码配置的更多相关文章

  1. Linux远程登录ssh免密码配置方法(仅供参考)

    这篇文章主要介绍了linux远程登录ssh免密码配置方法,需要的朋友可以参考下(http://www.0834-3659999.com) 一.情景 公司刚上几台Linux,现在要把主机之间都能远程ss ...

  2. Linux实验:ssh免密码配置

    [实验目的]    1)了解ssh工具的作用    2)熟悉ssh配置过程    3)理解ssh原理[实验原理]    SSH是目前比较可靠的专为远程登录会话和其他网络服务提供安全的协议.不同主机之间 ...

  3. LINUX的ssh免密码配置

    本篇将介绍LINUX的ssh免密码配置. 本篇中的有三台主机: 192.168.1.110 master.com.cn  主机192.168.1.111 salver1.com.cn192.168.1 ...

  4. git 免密码配置

    1.cd ~/ 2.touch .git-credentials   (注意文件名前面有个  ”点”) 3.打开刚刚创建的文件,写入 https://username:password@github. ...

  5. weblogic管理3 - 生产模式下免密码管理配置

    admin server免密码配置 >1.  生产模式中admin root目录下是否存在security/boot.properties文件 [weblogic@11g AdminServer ...

  6. Linux A机器免密码SSH登录B机器

    一.问题 如上,A机器经常需远程操作B机器,传输文件到B机器,每次输入帐号密码过于繁琐,下文通过ssh公钥能解免密码操作问题. 二.解决 1.方案 SSH认证采用公钥与私钥认证方式. 2.步骤 1) ...

  7. Linux两台主机之间建立信任(ssh免密码)

    背景: 有时候我们在两个主机之间复制文件的时候,提示输入密码,很不方便,那如何免密码复制呢?,就是使用通过linux公钥和秘钥,建立双机信任关系. 在整理之前,我先说下ssh免密码的要点 : 你想免密 ...

  8. ssh配置免密码登录

    日常工作中很多情况下都需要登录服务器进行管理,一般都是用ssh进行连接,为了防止密码外泄,可以配置下ssh的免密码登录. 首先服务器两台: A:43.224.34.* B:104.238.161.* ...

  9. CentOS配置SSH免密码登录后,仍提示输入密码

    CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到认证文件,更改权限 测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默 ...

随机推荐

  1. 详解树莓派Model B+控制蜂鸣器演奏乐曲

    步进电机以及无源蜂鸣器这些都需要脉冲信号才能够驱动,这里将用GPIO的PWM接口驱动无源蜂鸣器弹奏乐曲,本文基于树莓派Mode B+,其他版本树莓派实现时需参照相关资料进行修改! 1 预备知识 1.1 ...

  2. 深入理解JS 执行细节

    javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等 ...

  3. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  4. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  5. Python标准模块--ContextManager

    1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...

  6. CentOS下mysql数据库常用命令总结

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...

  7. java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE

    Android发出HTTP请求时出现了这个错误: java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INST ...

  8. SQL SERVER导入数据到ORACLE的方法总结

    我们偶尔会有将数据从SQL SERVER导入到ORACLE当中的这种需求,那么这种跨数据库导数有那些方法呢?这些方法又有那些利弊呢? 下面比较肤浅的总结了一些可行的方法. 1:生成SQL脚本然后去OR ...

  9. mysql 5.7中的用户权限分配相关解读!

    这篇文章主要介绍了MySQL中基本的用户和权限管理方法,包括各个权限所能操作的事务以及操作权限的一些常用命令语句,是MySQL入门学习中的基础知识,需要的朋友可以参考下 一.简介 各大帖子及文章都会讲 ...

  10. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...