下载此文档

MySQL金典培训教程:10第七章.docx


文档分类:IT计算机 | 页数:约46页 举报非法文档有奖
1/46
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/46 下载此文档
文档列表 文档介绍
该【MySQL金典培训教程:10第七章 】是由【zhangkuan1436】上传分享,文档一共【46】页,该文档可以免费在线阅读,需要了解更多关于【MySQL金典培训教程:10第七章 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第7章
数据库安全
本章要点::
MySQLL权限系统统原理
如何授予撤撤销用户和和授权
如何直接修修改授权表表
授予用户权权限的规范范和注意事事项
作为一个MMySQLL的系统管管理员,你你有责任维维护你的MMySQLL数据库系系统的数据据安全性和和完整性。本本文主要主主要介绍如如何建立一一个安全的的MySQQL系统,从从系统内部部和外部网网络两个角角度,为你你提供一个个指南。
本章主要考考虑下列安安全性有关关的问题::
为什么安全全性很重要要,你应该该防范那些些攻击?
服务器面临临的风险(内内部安全性性),如何何处理?
连接服务器器的客户端端风险(外外部安全性性),如何何处理?
MySQLL管理员有有责任保证证数据库内内容的安全全性,使得得这些数据据记录只能能被那些正正确授权的的用户访问问,这涉及及到数据库库系统的内内部安全性性和外部安安全性。
内部安全性性关心的是是文件系统统级的问题题,即,防防止MySSQL数据据目录(DDATADDIR)被被在服务器器主机有账账号的人(合合法或窃取取的)进行行攻击。如如果数据目目录内容的的权限过分分授予,使使得每个人人均能简单单地替代对对应于那些些数据库表表的文件,那那么确保控控制客户通通过网络访访问的授权权表设置正正确,对此此毫无意义义。
外部安全性性关心的是是从外部通通过网络连连接服务器器的客户的的问题,即即,保护MMySQLL服务器免免受来自通通过网络对对服务器的的连接的攻攻击。你必必须设置MMySQLL授权表(ggrantttabble),使使得他们不不允许访问问服务器管管理的数据据库内容,除除非提供有有效的用户户名和口令令。
下面就详细细介绍如何何设置文件件系统和授授权表myysql,实实现MySSQL的两两级安全性性。

MySQLL有一套先先进的但非非标准的安安全/授权权系统,掌掌握其授权权机制是开开始操作MMySQLL数据库必必须要走的的第一步,对对于一个熟熟悉SQLL基本操作作的人来说说,也是MMySQLL所有的知知识中比较较难以理解解的一个部部分。本节节通过揭开开其授权系系统的运作作机制,希希望大家能能够可以更更好地操作作和使用这这个优秀的的数据库系系统。
MySQLL的安全系系统是很灵灵活的,它它允许你以以多种不同同方式设置置用户权限限。一般地地,你可使使用标准的的SQL语语句GRAANT和RREVOKKE语句做做,他们为为你修改控控制客户访访问的授权权表,然而而,你可能能由一个不不支持这些些语句的老老版本的MMySQLL(在3..),或或者你发觉觉用户权限限看起来不不是以你想想要的方式式工作。对对于这种情情况,了解解MySQQL授权表表的结构和和服务器如如何利用它它们决定访访问权限是是有帮助的的,这样的的了解允许许你通过直直接修改授授权表增加加、删除或或修改用户户权限,它它也允许你你在检查这这些表时诊诊断权限问问题。

通过网络连连接服务器器的客户对对MySQQL数据库库的访问由由授权表内内容来控制制。这些表表位于myysql数数据库中,并并在第一次次安装MyySQL的的过程中初初始化(运运行myssql_iinstaall_ddb脚本)。授授权表共有有5个表::userr、db、hhost、ttablees_prriv和ccolummns_ppriv。
、dbb和hosst的结构构和作用
表7-1授权表表userr、db和和hostt的结构
User表表
Db表
Host表表
作用域列
Host
Host
Host
Db
Db
User
User
Passwword
数据库/表表的权限列列
Alterr_priiv
Alterr_priiv
Alterr_priiv
Creatte_prriv
Creatte_prriv
Delette_prriv
Delette_prriv
Drop__privv
Drop__privv
Indexx_priiv
Indexx_priiv
Indexx_priiv
Inserrt_prriv
Inserrt_prriv
Referrencees_prriv
Referrencees_prriv
Selecct_prriv
Selecct_prriv
Updatte_prriv
Updatte_prriv
Updatte_prriv
Alterr_priiv
Alterr_priiv
Alterr_priiv
File__privv
Grantt_priiv
Grantt_priiv
Grantt_priiv
Proceess_ppriv
Reloaad_prriv
Shutddown__privv
授权表的内内容有如下下用途:
user表表
user表表列出可以以连接服务务器的用户户及其口令令,并且它它指定他们们有哪种全全局(超级级用户)权权限。在uuser表表启用的任任何权限均均是全局权权限,并适适用于所有有数据库。例例如,如果果你启用了了DELEETE权限限,在这里里列出的用用户可以从从任何表中中删除记录录,所以在在你这样做做之前要认认真考虑。
db表
db表列出出数据库,而而用户有权权限访问它它们。在这这里指定的的权限适用用于一个数数据库中的的所有表。
host表表
host表表与db表表结合使用用在一个较较好层次上上控制特定定主机对数数据库的访访问权限,这这可能比单单独使用ddb好些。这这个表不受受GRANNT和REEVOKEE语句的影影响,所以以,你可能能发觉你根根本不是用用它。

表7-2授权表表tablles_ppriv和和coluumns__privv的结构
授权表taabless_priiv
授权表coolumnns_prriv
作用域列
Host
Host
Db
Db
User
User
Tablee_namme
Tablee_namme
Colummn_naame
权限列
Tablee_priiv
Colummn_prriv
其他列
Timesstampp
Timesstampp
Granttor
MySQLL没有roows_ppriv表表,因为它它不提供记记录级权限限,例如,你你不能限制制用户于表表中包含特特定列值的的行。如果果你确实需需要这种能能力,你必必须用应用用编程来提提供。如果果你想执行行建议的记记录级锁定定,你可用用GET__LOCKK()函数数做到。
授权表的内内容有如下下用途:
tablees_prriv表
tablees_prriv表指指定表级权权限,在这这里指定的的一个权限限适用于一一个表的所所有列。
colummns_ppriv表表
colummns_ppriv表表指定列级级权限。这这里指定的的权限适用用于一个表表的特定列列。
..11版引引进(与GGRANTT语句同时时)。如果果你有较早早版本的MMySQLL,你的mmysqll数据库将将只有usser、ddb和hoost表。,而而没有taabless_priiv和coolumnns_prriv表,运运行myssql_ffix_ppriviilegees_taabless脚本创建建它们。

权限信息用用userr、db、hhost、ttablees_prriv和ccolummns_ppriv表表被存储在在mysqql数据库库中(即在在名为myysql的的数据库中中)。,服服务器读入入这些数据据库表内容容。

下列权限运运用于数据据库和表上上的操作。
SELECCT
允许你使用用SELEECT语句句从表中检检索数据。SSELECCT语句只只有在他们们真正从一一个表中检检索行是才才需要seelectt权限,你你可以执行行某个SEELECTT语句,甚甚至没有任任何到服务务器上的数数据库里的的存取任何何东西的许许可。例如如,你可使使用myssql客户户作为一个个简单的计计算器:
mysqll>SEELECTT1+11;
mysqll>SEELECTTPI(()*2;;
UPDATTE
允许你修改改表中的已已有的记录录。
INSERRT
允许在表中中插入记录录
DELETTE
允许你从表表中删除现现有记录。
ALTERR
允许你使用用ALTEERTAABLE语语句,这其其实是一个个简单的第第一级权限限,你必须须由其他权权限,这看看你想对数数据库实施施什么操作作。
CREATTE
允许你创建建数据库和和表,但不不允许创建建索引。
DROP
允许你删除除(抛弃)数数据库和表表,但不允允许删除索索引。
注意:如果果你将myysql数数据库的ddrop权权限授予一一个用户,该该用户能抛抛弃存储了了MySQQL存取权权限的数据据库!
INDEXX
允许你创建建并删除索索引。
REFERRENCEES
目前不用。

下列权限运运用于控制制服务器或或用户授权权能力的操操作的管理理性操作。
FILE
允许你告诉诉服务器读读或写服务务器主机上上的文件。该该权限不应应该随便授授予,它很很危险,见见“回避授权权表风险”。服务器器确实较谨谨慎地保持持在一定范范围内使用用该权限。你你只能读任任何人都能能读的文件件。你正在在写的文件件必须不是是现存的文文件,这防防止你迫使使服务器重重写重要文文件,如//etc//passswd或属属于别人的的数据库的的数据目录录。
如果你授权权FILEE权限,确确保你不以以UNIXX的rooot用户运运行服务器器,因为rroot可可在文件系系统的任何何地方创建建新文件。如如果你以一一个非特权权用户运行行服务器,服服务器只能能在给用户户能访问的的目录中创创建文件。
GRANTT
允许你将你你自己的权权限授予别别人,包括括GRANNT。
PROCEESS
允许你通过过使用SHHOWPPROCEESS语句句或myssqladdminproccess命命令查看服服务器内正正在运行的的线程(进进程)的信信息。这个个权限也允允许你用KKILL语语句或myysqlaadminnkilll命令杀杀死线程。
你总是能看看到或杀死死你自己的的线程。PPROCEESS权限限赋予你对对任何线程程做这些事事情的能力力。
RELOAAD
允许你执行行大量的服服务器管理理操作。你你可以发出出FLUSSH语句,你你也能指性性mysqqladmmin的rreloaad、reefressh、fllush--hostts、fllush--logss、fluush-ppriviilegees和fllush--tablles等命命令。
SHUTDDOWN
允许你用mmysqlladmiinshhutdoown关闭闭服务器。
在userr、db和和hostt表中,每每一个权限限以一个单单独的列指指定。这些些列全部声声明为一个个ENUMM("N"","Y"")类型,所所以每个权权的缺省值值是“N”。在taabless_priiv和coolumnns_prriv中的的权限以一一个SETT表示,它它允许权限限用一个单单个列以任任何组合指指定。这两两个表比其其他三个表表更新,这这就是为什什么它们使使用更有效效的表示方方式的原因因。(有可可能在未来来,useer、dbb和hosst表也用用一个SEET类型表表示。)


一些范围列列要求文字字值,但它它们大多数数允许通配配符或其他他特殊值。
表7-3作用域域列的类型型
字段名
类型
Host
CHAR((60)
User
CHAR((16)
Passwword
CHAR((16)
Db
CHAR((64)(taabless_priiv和coolumnns_prriv表为为CHARR(60)))
Host
一个Hosst列值可可以是一个个主机名或或一个IPP地址。值值locaalhosst意味着着本地主机机,但它只只在你用一一个loccalhoost主机机名时才匹匹配,而不不是你在使使用主机名名时。假如如你的本地地主机名是是pit..,一一个有一个个Hostt值或loocalhhost,而而另一个有有pit..,有llocallhostt的记录将将只当你连连接loccalhoost时匹匹配,。如如果你想让让客户能以以两种方式式连接,你你需要在uuser表表中有两条条记录。
你也可以用用通配符指指定Hosst值。可可以使用SSQL的模模式字符“%”和“_”并具有当当你在一个个查询中使使用LIKKE算符同同样的含义义(不允许许regeex算符)。SQL模模式字符都都能用于主主机名和IIP地址。如如%,而而%.eddu匹配任任何教育学学院的主机机。类似地地,.%,而而192..168..3.%匹匹配任何在在192..168..3C类类子网的主主机。
%值匹配所所有主机,并并可用于允允许一个用用户从任何何地方连接接。一个空空白的Hoost值等等同于%。(例例外:在ddb表中,一一个空白HHost值值含义是“进一步检检查hosst表”,该过程程在“查询访问问验证”中介绍。)
从MySQQL3..23起,你你也可以指指定带一个个表明那些些为用于网网络地址的的网络掩码码的IP地地址,.1128前117位的任任何主机。
User
用户名必须须是文字的的或空白。一一个空白值值匹配任何何用户。%%作为一个个Userr值不意味味着空白,相相反它匹配配一个字面面上的%名名字,这可可能不是你你想要的。
当一个到来来的连接通通过useer表被验验证而匹配配的记录包包含一个空空白的Usser值,
客客户被认为为是一个匿匿名用户。
Passwword
口令值可以以是空或非非空,不允允许用通配配符。一个个空口令不不意味着匹匹配任何口口令,它意意味着用户户必须不指指定口令。
口令以一个个加密过的的值存储,不不是一个字字面上的文文本。如果果你在Paasswoord列中中存储一个个照字面上上的口令,用用户将不能能连接!GGRANTT语句和mmysqlladmiinpaasswoord命令令为你自动动加密口令令,但是如如果你用诸诸如INSSERT、RREPLAACE、UUPDATTE或SEETPAASSWOORD等命命令,一定定要用PAASSWOORD(""new__passswordd")而不不是简单的的"neww_passsworrd"来指指定口令。
Db
在coluumns__privv和tabbles__privv表中,DDb值必须须是真正的的数据库名名(照字面面上),不不允许模式式和空白。在在db和hhost中中,Db值值可以以字字面意义指指定或使用用SQL模模式字符''%'或''_'指定定一个通配配符。一个个'%'或或空白匹配配任何数据据库。
Tablee_namme,Coolumnn_namme
这些列中的的值必须是是照字面意意思的表或或列名,不不允许模式式和空白。
某些范围列列被服务器器视为大小小写敏感的的,其余不不是。这些些原则总结结在下表中中。特别注注意Tabble_nname值值总是被看看作大小写写敏感的,即即使在查询询中的表名名的大小写写敏感性对对待视服务务器运行的的主机的文文件系统而而定(UNNIX下是是大小写敏敏感,而WWindoows不是是)。
某些作用域域列被服务务器视为大大小写敏感感的,其余余不是。这这些原则总总结在下表表中。特别别注意Taable__namee值总是被被看作大小小写敏感的的,即使在在查询中的的表名的大大小写敏感感性对待视视服务器运运行的主机机的文件系系统而定(UUNIX下下是大小写写敏感,而而Winddows不不是)。

MySQL金典培训教程:10第七章 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数46
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhangkuan1436
  • 文件大小165 KB
  • 时间2022-10-22