MySql 用户安全

原创 2004年09月21日 20:43:00

    Windows默认安装好MySql以后需要做一些安全措施。首先像这样:
    mysql> use mysql;
    Database changed
    mysql> select Host,User,Password,Select_priv,Grant_priv from user;
    +------+------+-----------+-------------+------------+
    | Host | User | Password  | Select_priv | Grant_priv |
    +------+-------+----------+-------------+------------+
    | localhost | root |      | Y           | Y          |
    |  buider   | root |      | Y           | Y          |
  | localhost |      |      | Y           | Y          |
  |           |      |      | N           | N          |
  +-------+---+------+------+-------------+------------+
    4 rows in set (0.00 sec)

    默认情况下,可以不要任何用户、口令登陆MySql;来自localhost的root用户是没有口令的,一旦有人伪装成来自buider的root用户,安全性就会受到挑战。

    接着需要删除多余的用户:
    mysql> delete from user where user='';
    mysql> delete from user where host='buider';

    默认root用户的空密码也是必须修改:
    mysql> update user set password=password('123456') where user='root';
    mysql> flush privileges;

    这样,MySQL数据库root用户的口令被改成123456了。其中最后一句命令flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令,这时非法用户还可以用root用户及空口令登陆,直到重启MySQL服务器。

    再来看看:
    mysql> select Host,User,Password,Select_priv,Grant_priv from user;   
    +-----------+---------+------------------+-------------+------------+
    | Host      | User    | Password         | Select_priv | Grant_priv |
    +-----------+---------+------------------+-------------+------------+
    | localhost | root    | 565491d704013245 | Y           | Y          |
    +-----------+---------+------------------+-------------+------------+
    1 rows in set (0.03 sec)

    利用root用户登陆是不明智的,因为它拥有太大的权限,在实际使用时应该会出现安全问题,应该再建立一个用户,让他只要select、insert、update、delete这些基本权限即可。
    像这样建立一个叫javapro的用户密码为123456,它只能来自localhost并操作process下面所有的表:
    mysql> grant select,insert,update,delete on process.* to javapro@localhost identified by "123456";
    Query OK, 0 rows affected (0.00 sec)

    让我们再来检查一下:
    mysql>  select Host,User,Password,Select_priv,Grant_priv from user;   
    +-----------+---------+------------------+-------------+------------+
    | Host      | User    | Password         | Select_priv | Grant_priv |
    +-----------+---------+------------------+-------------+------------+
    | localhost | root    | 565491d704013245 | Y           | Y          |
    | localhost | javapro | 565491d704013245 | Y           | N          |
    +-----------+---------+------------------+-------------+------------+
    2 rows in set (0.00 sec)

    好,在程序中,我们只需要用javapro用户对我们的工作表process进行基本操作就行了。

    另外注意一下数据库备份的问题,mysqldump -u root -p mysql>samp.db.txt,在DOS命令台(不是mysql)下运行之,可以在bin目录下生成mysql数据库下所有的表文件(samp.db.txt)。导入最好使用EMS MySql Manager。


(请注意!引用、转贴本文应注明原作者:Rosen Jiang 以及出处:http://blog.csdn.net/rosen

加强MySQL用户安全

很多亲们在安装好了MySQL数据库之后,对于mysql用户表并没有做任何特殊的处理,因此缺省情况下,存在密码为空的用户,也有很多用户名和密码都为空的情形,我们称之为双空用户。这种情形下的登录,在此统称...
  • robinson_0612
  • robinson_0612
  • 2015年09月30日 14:30
  • 2416

如何安全的存储用户的密码

大多数的web开发者都会遇到设计用户账号系统的需求。账号系统最重要的一个方面就是如何保护用户的密码。一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的...
  • it_man
  • it_man
  • 2014年03月20日 10:12
  • 3079

MySQL 权限与安全

1、权限系统的工作原理 对于身份的认证,MySQL 是通过IP 地址和用户名联合进行确认的,例如MySQL 安装后默认创建的用户root@localhost 表示用户root 只能从本地(localh...
  • zq9017197
  • zq9017197
  • 2015年12月16日 20:00
  • 805

MySQL和PostgreSQL数据库安全配置

0x00 MySQL和PostgreSQL安全配置针对开源数据库MySQL和PostgreSQL的安全配置主要主要通过身份鉴别、访问控制、安全审计、入侵防范、资源控制五个方面来实现。0x01 身份鉴别...
  • elsery
  • elsery
  • 2016年05月29日 22:10
  • 1333

安全初始化MySql服务器

我们在安装完MySql服务器,设置好MySql的root用户密码后,就直接开始使用了,其实这样的MySql服务器还存在着一些不安全因素, 本篇演示一下用命令mysql_secure_installa...
  • dieyong
  • dieyong
  • 2015年06月24日 18:30
  • 579

mysql常见安全加固策略

常见Mysql配置文件:linux系统下是my.conf,windows环境下是my.ini; 数据库整体安全需求:机密性、完整性、可用性; 下面以mysql 5.7版本为例,介绍mysql常见的...
  • ilnature2008
  • ilnature2008
  • 2017年01月17日 21:36
  • 4476

线程安全的Mysql数据库连接池

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏...
  • FreeeLinux
  • FreeeLinux
  • 2016年11月30日 10:20
  • 1211

MySQL安全问题(防范必知)

对于任何一种数据库来说,安全问题都是非常重要的。如果数据库出现安全漏洞,轻则数据被窃取,重则数据被破坏,这些后果对于一些重要的数据库都是非常严重的。下面来从操作系统和数据库两个层对MySQL的安全问题...
  • xiaoxiaohui520134
  • xiaoxiaohui520134
  • 2016年10月12日 18:26
  • 1022

【MySQL】MySQL删除匿名用户,保证登录安全

许多MySQL程序都会带有匿名登录的功能。在刚刚安装完MySQL之后,就可以登录数据库啦。 这对于平时使用MySQL来说也基本没有什么,但是如果我们想部署数据库的时候,这种登录方式式绝对不能存在的!试...
  • fu_zk
  • fu_zk
  • 2014年11月09日 09:23
  • 4358

MySQL的安全管理

当服务器安装完MySQL之后就需要对其进行帐号分配了。我们需要确保哪些帐号能本地访问,哪些帐号能其他机器访问,这些帐号又都有哪些的权限。 比如线上数据库开发者们具有读表的权限,而DB们读写都有权限,根...
  • janekeyzheng
  • janekeyzheng
  • 2014年12月04日 15:34
  • 412
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySql 用户安全
举报原因:
原因补充:

(最多只允许输入30个字)