MySQL 安全事宜

1.通用安全问题

MySQL对所有的连接,查询及其它操作的用户都使用安全的ACLs,同时支持client与server之间的SSL连接.

  • 不要给予任何用户(除root之外)访问user表的权限
  • 通过GRANT和REVOKE来控制对MYSQL的访问,只授予必须的权限,不要向所有的HOSTS授权. 可以通过 SHOW GRANTS来查看哪个ACCOUNT访问了什么内容,之后可以用REVOKE来移除不必要的权限.
  • 不要存储任何纯文本密码
  • 不要从字典中选择密码
  • 使用防火墙
  • 不要相信任何你的应用程序使用者所输入的内容
  • 正确使用各种应用程序接口所提供的特殊字符过滤方法
  • 不要通过互连网传送没有加密的数据

2.让MYSQL安全抵御攻击

  • Require all MySQL accounts to have a password
  • Never run MySQL server as the unix root user.

          [mysqld]

          user=mysql

  • Do not allow the use of symlinks to tables
  • Make sure that the only unix/linux user account with read or write privileges in the database directories
  • Do not grant the PROCESS or SUPER prililege to noadministrative users
  • Do not grant the FILE privilege to noadministrative users
  • if you do not trust your DNS,you should use IP numbers rather than hosts name
  • using max_user_connections variable in mysqld to limit a single account's connections

3.使用普通user帐号启动MySQL

  • let the user account you choosed has the read and write right on mysql's data directory

           shell> chown -R user_name /path/to/mysql/datadi

  • start mysql server with --user=user_name options or
  • to start mysql server with given user_name automatically at system startup time,specify the user name by adding user option to the [mysqld] group of my.cnf or my.ini,eg:

        [mysqld]

        user=user_name

你可能感兴趣的:(mysql,Security)