视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL数据库中的安全解决方案(3)_MySQL
2020-11-09 17:36:02 责编:小采
文档

提示:随着网络的普及,基于网络的应用也越来越多。网络数据库就是其中之一。通过一台或几台服务器可以为很多客户提供服务,这种方式给人们带来了很多方便,但也给不法分子造成了可乘之机。由于数据都是通过网络传输的,这就可以在传输的过程中被截获,或者通过非常手段进入数

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命令对用户权限进行设置。而这些信息都是保存在授权表中,这些表是安全系统的心脏。在这些表中保存了每一个用户和客户机所具有的权限。如果正确地操作这些表,将会对数据库的安全起到积极的作用,而如果使用不慎,将是非常危险的。

下载本文
显示全文
专题