• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> MySQL >> 详细内容
 

推荐文章

  • 《MySQL管理员指南》之一----MySQL安全性指南
  • 实例讲解MYSQL数据库的查询优化技术
  • MySQL查询优化技术讲座
 
 

热点文章

  • 支持中文的MySQL 5.1+ 全文检索分词插件
  • MySQL数据导入导出方法与工具mysqlimport
  • 《MySQL管理员指南》之一----MySQL安全性指南
  • MySql管理的一点心得&MYSQL命令行模式
  • 修改MySQL的默认密码
  • 使用 SQL Server 2005中的 CLR 集成
  • 使用MySQL全文检索
  • Microsoft SQL Server 2005 中的 XML 支持
  • 简介Mysql中的临时表使用方法
  • MySQL查询优化系列讲座之查询优化器
  • 使用Excel分析MySQL数据
  • MySQL的常见错误的解决方法(英文)
 
 

相关文章

  • MySQL数据库的导入导出 和 Liunx的权限
  • 关于Mysql数据库导致CPU很高的问题解决
  • ASP如何使用MYSQL数据库
  • MySQL数据库中部分数据损坏恢复过程
  • MySQL数据库中用GRANT语句增添新用户
  • MySQL在数据库市场获得25%的市场份额
  • 编写MySQL数据库的用户认证系统实例
  • mysql数据库应该如何对抗解密高手
  • 关于MySQL数据库的用户认证系统分析
  • MySQL数据库的存储引擎简介
  • 保护MySQL数据库中重要数据的注意事项
  • MySQL数据库初学者使用指南
 
 

百度搜索

 
 

MySQL数据库在网络安全方面的功能

  • 阅览次数:
  • 文章来源: cp整理
  • 原文作者: 不详
  • 整理日期: 2007-04-08
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

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

这个表保存了单独列的权限信息。通过这个表,可以将操作某一列的权限授予一个用户。


[1] [2] [3]

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号