第9章--MySQL安全管理.ppt_第1页
第9章--MySQL安全管理.ppt_第2页
第9章--MySQL安全管理.ppt_第3页
第9章--MySQL安全管理.ppt_第4页
第9章--MySQL安全管理.ppt_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章MySQL安全管理 用户管理 权限控制 表维护语句 9 1用户管理 9 1 1添加 删除用户1 添加用户可以使用CREATEUSER语法添加一个或多个用户 并设置相应的密码 语法格式 CREATEUSERuser IDENTIFIEDBY PASSWORD password user IDENTIFIEDBY PASSWORD password 其中 user的格式为 user name hostname 9 1 1添加 删除用户 例9 1 添加两个新的用户 king的密码为queen palo的密码为530415 createuser king localhost identifiedby queen palo localhost identifiedby 530415 完成后可切换到mysql数据库 从user表中查到刚刚添加的两个用户记录 usemysqlshowtables select fromuser 9 1 1添加 删除用户 结果如图9 1所示 9 1 1添加 删除用户 2 删除用户语法格式 DROPUSERuser user name DROPUSER语句用于删除一个或多个MySQL账户 并取消其权限 要使用DROPUSER 必须拥有mysql数据库的全局CREATEUSER权限或DELETE权限 例9 2 删除用户palo dropuserpalo localhost 删除后可以用上面介绍的方法查看一下效果 9 1 2修改用户名 密码 1 修改用户名可以使用RENAMEUSER语句来修改一个已经存在的SQL用户的名字 语法格式 RENAMEUSERold userTOnew user old userTOnew user 例9 3 将用户king的名字修改为ken renameuser king localhost to ken localhost 9 1 2修改用户名 密码 2 修改密码要修改某个用户的登录密码 可以使用SETPASSWORD语句 语法格式 SETPASSWORD FORuser PASSWORD newpassword 例9 4 将用户ken的密码修改为qen setpasswordfor ken localhost password qen 9 2权限控制 9 2 1授予权限可以授予的权限有以下几组 1 列权限 和表中的一个具体列相关 例如 使用UPDATE语句更新表xs学号列的值的权限 2 表权限 和一个具体表中的所有数据相关 例如 使用SELECT语句查询表xs的所有数据的权限 3 数据库权限 和一个具体的数据库中的所有表相关 例如 在已有的xscj数据库中创建新表的权限 4 用户权限 和MySQL所有的数据库相关 例如 删除已有的数据库或者创建一个新的数据库的权限 9 2 1授予权限 GRANT语法格式 GRANTpriv type column list priv type column list ON object type tbl name db name TOuser IDENTIFIEDBY PASSWORD password user IDENTIFIEDBY PASSWORD password WITHwith option with option 其中 object type TABLE FUNCTION PROCEDUREwith option GRANTOPTION MAX QUERIES PER HOURcount MAX UPDATES PER HOURcount MAX CONNECTIONS PER HOURcount MAX USER CONNECTIONScount 9 2 1授予权限 1 授予表权限和列权限授予表权限时 priv type可以是以下值 SELECT 给予用户使用SELECT语句访问特定的表的权力 INSERT 给予用户使用INSERT语句向一个特定表中添加行的权力 DELETE 给予用户使用DELETE语句向一个特定表中删除行的权力 UPDATE 给予用户使用UPDATE语句修改特定表中值的权力 REFERENCES 给予用户创建一个外键来参照特定的表的权力 CREATE 给予用户使用特定的名字创建一个表的权力 ALTER 给予用户使用ALTERTABLE语句修改表的权力 INDEX 给予用户在表上定义索引的权力 DROP 给予用户删除表的权力 ALL或ALLPRIVILEGES 表示所有权限名 9 2 1授予权限 例9 5 授予用户ken在xs表上的SELECT权限 usexscj grantselectonxstoken localhost 例9 6 用户liu和zhang不存在 授予它们在xs表上的SELECT和UPDATE权限 grantselect updateonxstoliu localhostidentifiedby lpwd zhang localhostidentifiedby zpwd 9 2 1授予权限 例9 7 授予ken在xs表上的学号列和姓名列的UPDATE权限 usexscjgrantupdate 姓名 学号 onxstoken localhost 9 2 1授予权限 2 授予数据库权限授予数据库权限时 priv type可以是以下值 SELECT 给予用户使用SELECT语句访问特定数据库中所有表和视图的权力 INSERT 给予用户使用INSERT语句向特定数据库中所有表添加行的权力 DELETE 给予用户使用DELETE语句删除特定数据库中所有表的行的权力 UPDATE 给予用户使用UPDATE语句更新特定数据库中所有表的值的权力 REFERENCES 给予用户创建指向特定的数据库中的表外键的权力 CREATE 给予用户使用CREATETABLE语句在特定数据库中创建新表的权力 ALTER 给予用户使用ALTERTABLE语句修改特定数据库中所有表的权力 INDEX 给予用户在特定数据库中的所有表上定义和删除索引的权力 DROP 给予用户删除特定数据库中所有表和视图的权力 CREATETEMPORARYTABLES 给予用户在特定数据库中创建临时表的权力 CREATEVIEW 给予用户在特定数据库中创建新的视图的权力 9 2 1授予权限 SHOWVIEW 给予用户查看特定数据库中已有视图的视图定义的权力 CREATEROUTINE 给予用户为特定的数据库创建存储过程和存储函数等权力 ALTERROUTINE 给予用户更新和删除数据库中已有的存储过程和存储函数等权力 EXECUTEROUTINE 给予用户调用特定数据库的存储过程和存储函数的权力 LOCKTABLES 给予用户锁定特定数据库的已有表的权力 ALL或ALLPRIVILEGES 表示以上所有权限名 9 2 1授予权限 例9 8 授予ken在xscj数据库中的所有表的SELECT权限 grantselectonxscj token localhost 例9 9 授予ken在xscj数据库中所有的数据库权限 usexscj grantallon token localhost 9 2 1授予权限 3 授予用户权限MySQL授予用户权限时priv type还可以是以下值 CREATEUSER 给予用户创建和删除新用户的权力 SHOWDATABASES 给予用户使用SHOWDATABASES语句查看所有已有的数据库的定义的权利 例9 10 授予peter对所有数据库中的所有表的CREATE ALTERT和DROP权限 grantcreate alter dropon topeter localhostidentifiedby ppwd 例9 11 授予peter创建新用户的权力 grantcreateuseron topeter localhost 为了概括权限 表9 1列出了可以在哪些级别授予某条SQL语句权限 9 2 2权限转移和限制 例9 12 授予caddy在xs表上的SELECT权限 并允许其将该权限授予其他用户 首先在root用户下授予caddy用户SELECT权限 grantselectonxscj xstocaddy localhostidentifiedby 19830925 withgrantoption 1 打开命令行窗口 进入mysql安装目录下的bin目录 cdC ProgramFiles MySQL MySQLServer5 6 bin 2 登录 输入命令 mysql hlocalhost ucaddy p19830925其中 h后为主机名 u后为用户名 p后为密码 9 2 2权限转移和限制 登录后的界面如图9 2所示 9 2 2权限转移和限制 登录后 caddy用户只有查询xscj数据库中xs表的权利 它可以把这个权限传递给其他用户 这里假设用户Jim已经创建 grantselectonxscj xstoJim localhost 例9 13 授予Jim每小时只能处理一条SELECT语句的权限 grantselectonxstoJim localhostwithmax queries per hour1 9 2 3权限回收 要使用REVOKE 用户必须拥有mysql数据库的全局CREATEUSER权限或UPDATE权限 语法格式 REVOKEpriv type column list priv type column list ON tbl name db name FROMuser user 或者 REVOKEALLPRIVILEGES GRANTOPTIONFROMuser user 例9 14 回收用户caddy在xs表上的SELECT权限 usexscjrevokeselectonxsfromcaddy localhost 9 3表维护语句 9 3 1ANALYZETABLE语句一个索引列的可压缩性不是自动更新的 就是说 用户在某列创建了一个索引 而该列的可压缩性是不会立即计算出来的 这时需要使用ANALYZETABLE语句来更新它 语法格式 ANALYZE LOCAL NO WRITE TO BINLOG TABLEtbl name tbl name 在MySQL上执行的所有更新都将写入到一个二进制日志文件中 9 3 1ANALYZETABLE语句 例9 15 更新表xs的索引的可压缩性 并随后显示 analyzetablexs showindexfromxs 执行结果为 9 3 2CHECKTABLE语句 这条语句用来检查一个或多个表是否有错误 只对MyISAM和InnoDB表起作用 语法格式 CHECKTABLEtbl name tbl name option 其中 option为 QUICK FAST MEDIUM EXTENDED CHANGED 例9 16 检查xs表是否正确 checktablexs 执行结果如图所示 9 3 3CHECKSUMTABLE语句 对于数据库中的每一个表 都可以使用CHECKSUMTABLE语句获得一个校验和 语法格式 CHECKSUMTABLEtbl name tbl name QUICK EXTENDED 例9 17 获得表xs的校验和的值 checksumtablexs 执行结果如图所示 9 3 4OPTIMIZETABLE语句 OPTIMIZETABLE语句只对MyISAM BDB和InnoDB表起作用 语法格式 OPTIMIZE LOCAL NO WRITE TO BINLOG TABLEtbl name tbl name 例9 18 优化xs表 optimizetablekc 9 3 5REPAIRTABLE语句 如果一个表或索引已经损坏 可以使用REPAIRTABLE语句尝试修复它 REPAIRTABLE只对MyISAM和ARCHIVE表起作用 REPAIR LOCAL NO WRITE TO BINLOG TABLEtbl name tbl name QUICK EXTENDED USE FRM 说明 REPAIRTABLE语句支持以下选项 QUICK 如果指定了该选项 则REPAIRTABLE会尝试只修复索引树 EXTENDED 使用该选项 则MySQL会一行一行地创建索引行 代替使用分类一次创建一个索

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论