MySQL数据库中的安全解决方案
509 选项进行SSL传输:
GRANT ALL PRIVILEGES ON ssl_only_db.* to ''abc''@''%'' IDENTIFIED BY "password!" REQUIRE x509; 你还可以使用REQUIRE SUBJECT来指定一个特定的客户端证书来访问数据库。 GRANT ALL PRIVILEGES ON ssl_only_db.* to ''abc''@''%'' 也许你并不关心使用的是什么客户许可,而仅仅关心的是你的证书。那么你可以使用REQUIRE ISSUER来实现: GRANT ALL PRIVILEGES ON ssl_only_db.* to ''abc''@''%'' IDENTIFIED BY "password!" SSL还可以直接通过密码进行加密。可以使用REQUIRE CIPHER设置密码。 GRANT ALL PRIVILEGES ON ssl_only_db.* to ''abc''@''%'' IDENTIFIED BY "password!" 上面使用了GRANT命令对用户权限进行设置。而这些信息都是保存在授权表中,这些表是安全系统的心脏。在这些表中保存了每一个用户和客户机所具有的权限。如果正确地操作这些表,将会对数据库的安全起到积极的作用,而如果使用不慎,将是非常危险的。 下面让我们来看看MySQL中的最要的5个授权表。 user 用户表保存了用户的权限和被加密的密码。这个表负责确定哪些用户和客户机可以连接到服务器上。 host 这个表为每一个客户机分配权限,它并不考虑用户的权限。MySQL在确定是否接收还是拒绝一个连接时,首先考虑的是user表。而使用GRANT或REVOKE命令并不影响host表,我们可以通过手工方式修改这个表中的内容。 db db表保存了数据库层的权限信息。 tables_priv 这个表存储了表的权限信息。 columns_priv 这个表保存了单独列的权限信息。通过这个表,可以将操作某一列的权限授予一个用户。 哈希加密 如果数据库保存了敏感的数据,如银行卡密码,客户信息等,你可能想将这些数据以加密的形式保存在数据库中。这样即使有人进入了你的数据库,并看到了这些数据,也很难获得其中的真实信息。 在应用程序的大量信息中,也许你只想交很小的一部分进行加密,如用户的密码等。这些密码不应该以明文的形式保存,它们应该以加密的形式保存在数据库中。一般情况下, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |