zoukankan      html  css  js  c++  java
  • Mysql数据库安全管理配置

    1.删除test库

    原因:

    The default MySQL installation comes with a database named test that anyone can access. This database is intended only for tutorials, samples, testing, etc. Databases named "test" and also databases with names starting with - depending on platform - "test" or "test_" can be accessed by users that do not have explicit privileges granted to the database. You should avoid such database names on production servers.

    建议:

    Drop databases named "test" and also all databases with names starting with - depending on platform - "test" or "test_" and remove all associated privileges.

    具体操作:在主库上删除test库:

    drop database test;

    2. 删除root用户或者让root用户只可在本机登陆

    原因:

    The root User can log in remotely. It means that you can connect as root from remote hosts if you know the password. An attacker must guess the password, but may attempt to do so by connecting from remote hosts. However, if remote access is disallowed, the attacker can attempt to connect as the root user only after first gaining access to localhost.

    The default MySQL installation includes a root account with super (full) privileges that is used to administer the MySQL server. The name root is created by default and is very well known. The literal value root does not have any significance in the MySQL privilege system. Hence there is no requirement to continue with the user name root.

    建议:

    a. rename the root mysql user to something obscure and disallow remote access (best for security).

    b. if you still want to keep the root user for some reason, make sure remote access is disallowed. use the following sql: delete from mysql.user where user = "root" and host not in ('127.0.0.1','localhost',);flush privileges;

    具体操作:

    delete from mysql.user where user = "root" and host not in ('127.0.0.1','localhost',);

    flush privileges;

    在做删除root用户此步骤前需要依次确认 function、procedure、event、view、trigger的definer,如果有definer为root@%或root@xxx需要将之改为root@127.0.0.1或root@localhost,而且root@localhost或root@127.0.0.1需要被保留,除非将definer也改为其它。要不然在执行相应的定义时会拒绝执行。具体修改见《mysql如何修改所有的definer》

      

     3.最小化生产库上的用户权限

    准备用common_user来联接数据库,保留root的本地登陆,授权一个具有dba权限的新帐户:

    grant insert,delete,update,select,execute on sp.* to 'common_user'@'127.0.0.1' identified by 'xxxxxx';

    grant insert,delete,update,select,execute on sp.* to 'common_user'@'%' identified by 'xxxxxx';

    grant all on *.* to ‘dba’@‘%’ identified by ‘xxxxxx’ with grant option;

    flush privileges;

    生产数据库上只需要有如上的帐户即可,其它的帐户可根据需求再作修改。

    至此,生产库上的帐号管理权限安全配置告一段落。

  • 相关阅读:
    PetShop数据访问层之消息处理 《解剖PetShop》系列之三
    正则过滤汉字
    c语言 断点续传3
    c 写cgi 与socket通信
    C 语言 断点续传2
    承接B2C商城定制开发 空间+域名+风语商城系统=¥4000
    16进制 SQL注入
    c# socket传送大文件
    c写cgi cookies 设置与读取
    cgi 操作封装
  • 原文地址:https://www.cnblogs.com/zejin2008/p/4766572.html
Copyright © 2011-2022 走看看