会员名称:  密码:   验证码:     会员注册  忘记密码? 
设为首页
加入收藏
返回首页
媒体资讯>> 业界资讯 - 会展动态 - 竞赛&活动 - IT互联网  媒体学院>> 图形图像 - 网页制作 - 网络编程 - 数据库 - 服务器 - 网络应用  作品赏析>> 视频音响 - CG动画 - UI设计 - 平面设计 - 网页设计 - 摄影映象 - 三维2D - 其它设计  媒体工作室>> 视频影像 - 音频声响 - 三维2D - 平面视觉 - 软硬技术 - 摄影映象  人物访谈>> 人物访谈 - 华夏新锐  媒体杂志>> 媒体杂志  素材图库>> 丽景佳图 - 设计素材 - 资料图库 - 矢量图库 - 动态动画 - 特色图标  酷站赏析>> 韩国网站 - 国外网站 - 国内网站  会员中心>> 会员注册 - 会员登陆
当前位置:华夏媒体 - > 媒体学院 - > 数据库 - > MYSQL - > MySQL安全性指南
   
   
   
MySQL安全性指南 MySQL安全性指...  [MYSQ...]
MySQL安全性指南 (1) MySQL安全性指...  [MSSQ...]
MySQL安全性指南 (2) MySQL安全性指...  [MSSQ...]
MySQL安全性指南(3) MySQL安全性指...  [MSSQ...]
More... 
   
网络协议X档案全集(十) 网络协议X档案...  [其它...]
不可忽视的BIOS参数设置 不可忽视的BIO...  [其它...]
微软IE浏览器非常规修改全攻略(上) 微软IE浏览器非...  [其它...]
微软IE浏览器非常规修改全攻略(下) 微软IE浏览器非...  [其它...]
网管十招 网管十招  [其它...]
微软安全问题 源自OS和IE中集成RSS 微软安全问题 ...  [其它...]
修改注册表使电脑更安全 修改注册表使电...  [其它...]
利用注册表管理IP地址 利用注册表管理...  [其它...]
有关IIS HACK的一些方法整理 有关IIS HACK的...  [其它...]
More 
MySQL安全性指南
编辑:华夏媒体     作者:未知     来源:网络     时间:2006-07-29     总浏览量:1743
文字大小:[      ]     文字颜色:      双击滚屏/单击停止

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [下一页] 



GRANT ALL ON *.* TO anyname@localhost IDENTIFIED BY "passwd" 
    WITH GRANT OPTION 
该语句将在user表中为anyname@localhost创建一个记录,打开所有权限,因为这里是超级用户(全局)权限存储的地方,要用INSERT语句做同样的事情,语句是: 

INSERT INTO user  VALUES("localhost","anyname",PASSWORD("passwd"), 
    "Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y") 
你可能发现它不工作,这要看你的MySQL版本。授权表的结构已经改变而且你在你的user表可能没有14个权限列。用SHOW COLUMNS找出你的授权表包含的每个权限列,相应地调整你的INSERT语句。 下列GRANT语句也创建一个拥有超级用户身份的用户,但是只有一个单个的权限: 

GRANT RELOAD ON *.* TO flush@localhost IDENTIFIED BY "flushpass" 
本例的INSERT语句比前一个简单,它很容易列出列名并只指定一个权限列。所有其它列将设置为缺省的"N": 

INSERT INTO user (Host,Password,Reload) VALUES("localhost","flush",PASSWORD("flushpass"),"Y") 
数据库级权限用一个ON db_name.*子句而不是ON *.*进行授权: 

GRANT ALL ON sample.* TO boris@localhost IDENTIFIED BY "ruby" 
这些权限不是全局的,所以它们不存储在user表中,我们仍然需要在user表中创建一条记录(使得用户能连接),但我们也需要创建一个db表记录记录数据库集权限: 

INSERT INTO user (Host,User,Password) VALUES("localhost","boris",PASSWORD("ruby")) 

INSERT INTO db VALUES("localhost","sample_db","boris","Y","Y","Y","Y","Y","Y","N","Y","Y","Y") 

"N"列是为GRANT权限;对末尾的一个数据库级具有WITH GRANT OPTION的GRANT语句,你要设置该列为"Y"。 

要设置表级或列级权限,你对tables_priv或columns_priv使用INSERT语句。当然,如果你没有GRANT语句,你将没有这些表,因为它们在MySQL中同时出现。如果你确实有这些表并且为了某些原因想要手工操作它们,要知道你不能用单独的列启用权限。 

你设置tables_priv.Table_priv或columns_priv.Column_priv列来设置包含你想启用的权限值。例如,要对一个表启用SELECT和INSERT权限,你要在相关的tables_priv的记录中设置Table_priv为"Select,Insert"。 

如果你想对一个拥有MySQL账号的用户修改权限,使用UPDATE而不是INSERT,不管你增加或撤销权限都是这样。要完全删除一个用户,从用户使用的每个表中删除记录。 

如果你愿意避免发一个查询来直接修改全权表,你可以看一下MySQL自带的mysqlaccess和mysql_setpermissions脚本。 

附录1 小测验 
在你刚刚新安装了一个MySQL服务器,在你增加了一个允许连接MySQL的用户,用下列语句: 

GRANT ALL ON samp_db.* TO fred@*.snake.net IDENTIFIED "cocoa" 

而fred碰巧在服务器主机上有个账号,所以他试图连接服务器: 

%mysql -u fred -pcocoa samp_db 
ERROR 1045: Access denied for user: ’fred@localhost’ (Using password: YES) 

为什么? 

原因是: 

先考虑一下mysql_install_db如何建立初始权限表和服务器如何使用user表记录匹配客户连接。在你用mysql_install_db初始化你的数据库时,它创建类似这样的user表: 

Host User 
localhost 
pit.snake.net 
localhost 
pit.snake.net root 
root 

头两个记录允许root指定localhost或主机名连接本地服务器,后两个允许匿名用户从本地连接。当增加fred用户后, 

Host User 
localhost 
pit.snake.net 
localhost 
pit.snake.net 
%.snake.net root 
root 

fred 

在服务器启动时,它读取记录并排序它们(首先按主机,然后按主机上的用户),越具体越排在前面: 


[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [下一页] 

打印   收藏   关闭   至顶部  


关于我们 | 联系我们 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 意见建议
版权所有  Copyright © 2005-2006 华夏媒体(Media86.Com). All Rights Reserved .
网站备案号:粤ICP备06055307号