随着网络的普及,基于网络的应用越来越多。网络就是其中之一。一台或几台服务器可以为很多客户提供服务,给人们带来了很多便利,但也给不法分子创造了机会。由于数据是通过网络传输的,在传输过程中可能会被截获,或者通过极端手段进入数据库。基于以上原因,数据库安全非常重要。因此,本文探讨了mysql数据库在网络安全中的一些作用。
账户安全
这是MySQL账户最简单的安全措施。每个帐户由用户名、密码和位置(通常是服务器名、IP或通配符)组成。如果用户john从服务器1登录,john从服务器2登录的权限可能不同。
MySQL的用户结构是用户名/密码/位置。这不包括数据库名称。以下两个命令为数据库1和数据库2设置选择用户权限。
授予对数据库1的SELECT权限。*到& lsquoabc & rsquo@ & lsquo服务器& rsquo由& lsquo标识。密码& rsquo;
授予对数据库2的SELECT权限。*到& lsquoabc & rsquo@ & lsquo服务器& rsquo由& lsquo标识。密码& rsquo;
第一个命令设置用户abc在连接到数据库database1时使用密码1。第二个命令设置用户abc在连接到数据库2时使用密码2。因此,用户abc用于连接数据库database1和database2的密码是不同的。
以上设置很有用。如果您只想让用户对一个数据库进行有限的访问,而不是对其他数据库进行访问,您可以为同一个用户设置不同的密码。如果不这样做,当用户发现这个用户名可以访问其他数据库时,就会造成麻烦。
MySQL使用许多授权表来跟踪用户及其不同的权限。这些表是mysql数据库中的MyISAM表。在MySQL中保存这些安全信息是非常有意义的。因此,我们可以使用标准的SQL来设置不同的权限。
通常,在MySQL数据库中可以使用3种不同类型的安全检查:
& middot登录验证
也就是最常用的用户名和密码验证。但是一旦输入了正确的用户名和密码,这个验证就可以通过了。
& middot批准
登录成功后,需要为该用户设置具体的权限。例如数据库中的表是否可以删除。
& middot访问控制
这种安全类型更加具体。涉及到用户可以对数据表进行什么样的操作,比如数据库是否可以编辑,数据是否可以查询等等。
访问控制由一些特权组成,这些特权与如何使用和操作MySQL中的数据有关。它们都是布尔型的,即要么允许,要么不允许。以下是这些权限的列表:
& middot挑选
选择是设置用户是否可以使用选择来查询数据。如果用户没有这个权限,只能执行一些简单的SELECT命令,比如计算表达式(SELECT 1+2)或者日期转换(SELECT Unix_TIMESTAMP(NOW()))。
& middot插入
& middot更新
& middot指数
INDEX确定用户是否可以设置表的索引。如果用户没有此权限,则不能设置表中的索引。
& middot改变
& middot创造
& middot同意
如果用户拥有此授予权限,他可以将其权限授予其他用户。也就是说,这个用户可以与其他用户共享他的权限。
& middot参考
有了REFERENCES权限,用户可以使用其他表的字段作为某个表的外键约束。
除了以上权限,MySQL还有一些操作整个MySQL的权限。
& middot重新加载
该权限使用户能够执行各种刷新命令,如刷新表、刷新状态等。
& middot关机
该权限允许用户关闭MySQL。
& middot过程
拥有此权限,用户可以执行SHOW PROCESSLIST和KILL命令。这些命令可以通过这种方式查看MySQL的处理过程和SQL执行的细节。
& middot文件
此权限决定了用户是否可以执行“将数据加载到文件中”命令。慎重的给用户这个权限,因为有这个权限的用户可以将任意文件加载到表中,这对于MySQL来说是非常危险的。
& middot极好的
该权限允许用户终止任何查询(这些查询可能不由该用户执行)。
以上权限非常危险,在给用户授权时要非常谨慎。
[下一页]
MySQL中的SSL
以上账号安全只使用普通Socket进行数据传输,非常不安全。所以MySQL在4.1版本之后提供了对SSL(Secure Scokets Layer)的支持。MySQL使用免费的OpenSSL库。
由于MySQL的Linux版本一般都是随Linux本身一起发布的,默认情况下都不使用SSL来传输数据。要打开SSL功能,您需要设置hava_openssl变量:
Windows版的MySQL增加了OpenSSL。此外,该命令用于检查您的MySQL中是否打开了SSL。
显示变量,如& lsquohave _ openssl & rsquo;
+ - + - +
|变量名称|值|
+ - + - +
| have_openssl | NO |
+ - + - +
集合中的1行(0.00秒)
如果返回NO,那么您需要将OpenSSL编译到MySQL中。
有时您可能需要加密用户名和密码。此时,您可以使用下面的GRANT命令:
授予ssl_only_db上的所有权限。*到& lsquoabc & rsquo@ & lsquo% & rsquo由& quot密码!"需要SSL
SSL传输也可以通过REQUIRE x509选项来执行:
授予ssl_only_db上的所有权限。*到& lsquoabc & rsquo@ & lsquo% & rsquo由& quot密码!"需要x509
还可以使用REQUIRE SUBJECT指定特定的客户端证书来访问数据库。
授予ssl_only_db上的所有权限。*到& lsquoabc & rsquo@ & lsquo% & rsquo
由& quot密码!"
要求主题& quot/C = US/ST = New York/L = Albany/O = widgets Inc ./CN = client-ray。
example . com/email address = raymond @ example . com & quot;;
也许你不在乎你用的是什么客户许可证,只在乎你的证书。然后您可以使用REQUIRE ISSUER来实现它:
授予ssl_only_db上的所有权限。*到& lsquoabc & rsquo@ & lsquo% & rsquo由& quot密码!"
要求发行者& quot/C = US/ST = New+20 York/L = Albany/O = Widgets Inc ./CN = cacert . example
com/email address = admin @ example . com & quot;;
SSL也可以直接用密码加密。您可以使用“需要密码”来设置密码。
授予ssl_only_db上的所有权限。*到& lsquoabc & rsquo@ & lsquo% & rsquo由& quot密码!"
需要密码& quotEDH-RSA-DES-CBC 3-SHA & quot;;
GRANT命令用于设置用户权限。这些信息存储在授权表中,授权表是安全系统的核心。在这些表中,保存了每个用户和客户端的权限。这些表如果操作正确,会对数据库的安全起到积极的作用,但是如果使用不慎,就会非常危险。
让我们来看看MySQL中最重要的五个授权表。
用户
用户表存储用户的权限和加密密码。此表负责确定哪些用户和客户机可以连接到服务器。
宿主
此表为每个客户端分配权限,而不考虑用户的权限。当MySQL决定是接受还是拒绝一个连接时,首先要考虑的是用户表。但是,使用GRANT或REVOKE命令不会影响主机表,我们可以手动修改该表的内容。
Db表保存数据库层的权限信息。
表格_权限
此表存储表的权限信息。
列_权限
该表保存各个列的权限信息。通过此表,您可以授予用户操作列的权限。
[下一页]
哈希加密
如果数据库存储敏感数据,如银行卡密码、客户信息等。,您可能希望将这些数据以加密形式存储在数据库中。即使有人进入你的数据库,看到了数据,也很难得到真实的信息。
在应用的大量信息中,也许你只想加密一小部分,比如用户的密码。这些密码不应该以纯文本的形式保存,而应该以加密的形式保存在数据库中。一般大部分系统,包括MySQL本身,都会使用哈希算法对敏感数据进行加密。
加密是单向加密,也就是说不能从加密的字符串中获取原字符串。这种方法只在密码验证或者其他需要验证的地方使用。相比较而言,加密后的字符串不进行解密,而是用同样的方法对输入的字符串进行加密,然后与数据库中的加密字符串进行比较。即使你知道算法,得到了加密的字符串,也无法还原出原来的字符串。银行卡的密码就是这样加密的。
MySQL为哈希加密提供了四个函数:密码、加密、SHA1和MD5。让我们试试这4个函数,看看会得到什么结果。我们加密字符串“pa55word & quot举例说明:
我们先来看看MD5函数。
选择MD5(& lsquo;pa55word & rsquo);
+ - +
| MD5(& lsquo;pa55word & rsquo) |
+ - +
| a17a 41337551d 6542 FD 005 e 18 b 43 AFD 4 |
+ - +
集合中的1行(0.13秒)
以下是密码功能
选择密码(& lsquopa55word & rsquo);
+ - +
|密码(& lsquopa55word & rsquo) |
+ - +
| 1d35c6556b8cab45 |
+ - +
关键词:MySQL,数据库安全,解决方案
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227419.html