跳转到路径导航栏
跳转到正文内容

mysql数据库应该如何对抗解密高手

http://www.sina.com.cn  2008年12月30日 18:22  比特网ChinaByte
  当你连接一个mysql服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个,你可使用压缩协议(mysql3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装ssh。用它,你能在一个mysql服务器与一个mysql客户之间得到一个加密的tcp/ip连接。

  为了使一个mysql系统安全,强烈要求你考虑下列建议:

  对所有mysql用户使用口令。记住,如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑mysql_install_db脚本改变所有用户的口令,或仅仅mysql root的口令,象这样:

  shell> mysql -u root mysql mysql> update user set password=password("new_password") where user="root"; mysql> flush privileges;

  不要作为unix的root用户运行mysql守护进程。mysqld能以任何用户运行,你也可以创造一个新的unix用户mysql使一切更安全。如果你作为其它unix用户运行mysqld,你不需要改变在user表中的root用户名,因为mysql用户名与unix 用户名没关系。你可以作为其它unix用户编辑mysql.server启动脚本mysqld。通常这用su命令完成。对于更多的细节,见18.8 怎样作为一个一般用户运行mysql。

  如果你把一个unix root用户口令放在mysql.server脚本中,确保这个脚本只能对root是可读的。

  检查那个运行mysqld的unix用户是唯一的在数据库目录下有读/写权限的用户。

  不要把process权限给所有用户。mysqladmin processlist的输出显示出当前执行的查询正文,如果另外的用户发出一个update user set password=password("not_secure")查询,被允许执行那个命令的任何用户可能看得到。mysqld为有process权限的用户保留一个额外的连接, 以便一个mysql root用户能登录并检查,即使所有的正常连接在使用。不要把file权限给所有的用户。

  有这权限的任何用户能在拥有mysqld守护进程权限的文件系统那里写一个文件!为了使这更安全一些,用select ... into outfile生成的所有文件对每个人是可读的,并且你不能覆盖已经存在的文件。

  file权限也可以被用来读取任何作为运行服务器的unix用户可存取的文件。这可能被滥用,例如,通过使用load data装载“/etc/passwd”进一个数据库表,然后它能用select被读入。

  如果你不信任你的dns,你应该在授权表中使用ip数字而不是主机名。原则上讲,--secure选项对mysqld应该使主机名更安全。在任何情况下,你应该非常小心地使用包含通配符的主机名。

>话题讨论查看全部评论

已有 _COUNT_位网友发表评论  
登录名: 密码: 匿名发表

Powered By Google 感动2008,留下你最想说的话!
濞撮棿妞掔粭鐔煎嫉瀹ュ懎顫� 
闁哄懐鍎ゆ慨鍥礉閳轰礁顫斿ù闂存缁楃喖鐛崹顔藉暈闁解偓閵夆晜鏁�  闁哄倻澧楀顕€寮查悜妯侯潓-濞戞搩鍘奸惃顒佸娴  pfpif.sina.net
闁绘牕宕鐔哥▕閻樿京鐟愰柡鍌滃濮橆噣寮▎鎺戜粶  濠靛倽妫勯妶鐣屸偓娑崇細缁★拷 濠㈠灈鏅涢妵澶嬬▔  pfpif.sina.net
闂佸弶鍨奸悗娲础鏉堛劍绨氬┑鈥冲€风紞宥夋偩濞嗗浚鍔�  濞戞挴鍋撻柟闈涱儓缁侇偆鎷嬮敓锟� 濞戞挴鍋撶紒鎯  pfpif.sina.net
闁告凹鍓ㄧ槐婵堜焊閸楃偞鍎旈柛濠勫帶缁堕亶鎯勯梹鎰箚闁活煉鎷�  闂侇偅淇虹换鍐即鐎涙ɑ缍€濠电偘鐒﹀ú鍧楀矗椤栨  pfpif.sina.net

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2008 SINA Corporation, All Rights Reserved

新浪公司 版权所有