您当前位置:主页 > 资讯攻略 >
来源:未知
2020-05-07 12:16:01 浏览: 分类:资讯攻略

MySQL数据库安全解决方案

随着网络的普及,基于网络的应用越来越多。网络就是其中之一。一台或几台服务器可以为很多客户提供服务,给人们带来了很多便利,但也给不法分子创造了机会。由于数据是通过网络传输的,在传输过程中可能会被截获,或者通过极端手段进入数据库。基于以上原因,数据库安全非常重要。因此,本文探讨了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

攻略资讯
安卓软件