MySQL数据库安全办理筹划[MySQL防范]
本文“MySQL数据库安全办理筹划[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
MySQL中的SSL
以上的帐户安全只是以普通的Socket举行数据传输的,这样非常不安全.因此,MySQL在4.1版今后供应了对SSL(Secure Scokets Layer)的支持.MySQL利用的是免费的OpenSSL库.
由于MySQL的Linux版本普通都是随Linux本身一同公布,因此,它们默许时都不利用SSL举行传输数据.假如要翻开SSL功效,需求对hava_openssl变量举行设置:
MySQL的Windows版本已经将OpenSSL加入了.也面的号令是查看你的MySQL能否翻开了SSL功效.
SHOW VARIABLES LIKE 'have_openssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | NO |
+---------------+-------+
1 row in set (0.00 sec)
假如返回的是NO,那么阐明你需求将OpenSSL编译进自己的MySQL
在有时你大概需求将用户名和密码举行加密传输.在这时可以利用下面GRANT号令:
GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!" REQUIRE SSL;
还可以通过 REQUIRE x509 选项举行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'@'%'
IDENTIFIED BY "password!"
REQUIRE SUBJECT "/C=US/ST=New York/L=Albany/O=Widgets Inc./CN=client-ray.
example.com/emailAddress=raymond@example.com";
大概你并不关心利用的是什么客户答应,而仅仅关心的是你的证书.那么你可以利用REQUIRE ISSUER来实现:
GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!"
REQUIRE ISSUER "/C=US/ST=New+20York/L=Albany/O=Widgets Inc./CN=cacert.example.
com/emailAddress=admin@example.com";
SSL还可以直接通过密码举行加密.可以利用REQUIRE CIPHER设置密码.
GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!"
REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
上面利用了GRANT号令对用户权限举行设置.而这些信息都是保存在受权表中,这些表是安全系统的心脏.在这些表中保存了每一个用户和客户机所具有的权限.假如精确地操作这些表,将会对数据库的安全起到主动的作用,而假如利用不慎,将是非常危险的.
下面让我们来看看MySQL中的最要的5个受权表.
user
用户表保存了用户的权限和被加密的密码.这个表负责肯定哪些用户和客户机可以衔接到服务器上.
host
这个表为每一个客户机分配权限,它并不考虑用户的权限.MySQL在肯定能否接纳还是回绝一个衔接时,首先考虑的是user表.而利用GRANT或REVOKE号令并不影响host表,我们可以通过手工方法改正这个表中的内容.
db
db表保存了数据库层的权限信息.
tables_priv
这个表存储了表的权限信息.
columns_priv
这个表保存了单独列的权限信息.通过这个表,可以将操作某一列的权限授与一个用户.
以上是“MySQL数据库安全办理筹划[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |