18权限管理如何控制数据库访问消除安全隐患_第1页
18权限管理如何控制数据库访问消除安全隐患_第2页
18权限管理如何控制数据库访问消除安全隐患_第3页
18权限管理如何控制数据库访问消除安全隐患_第4页
18权限管理如何控制数据库访问消除安全隐患_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

把具有相同数据范围和程度的用户归成不同的类别,这种类别就叫角色。通过角色,管理用户对数据库的范围和程度就更加方便了。这也就是对用户的数据权限那么,怎么进行权限管理呢?这节课,就结合超市项目的实际案例,给你讲一下权限管理的具体操作,包括怎么操作角色和用户,怎么通过角色给用户,怎么直接给用户授下面就来先讲讲角色。可以通过角色对相同权限的用户进行分组管理,这样可以使MySQL8.0 超市项目中有库管、营运和财务等不同的模块,它们各自对应不同的数据表。比如库存模块中的盘点表(eount)desr还有财务模块中的应付账款表(demottment)所以,需要为每一个职责创建一个对应的角色,为每个员工创建一个对应的数据库用户。然后通过给角色赋予相关的权限,再把角色赋予用户,实现对超市员工数据权限 11CREATEROLE角色名 mysql>mysql>CREATEROLE'manager'@'localhost';QueryOK,0rowsaffected(0.06sec)“localhost”“managermysql>mysql>CREATEROLEQueryOK,0rowsaffected(0.01如果不写主机名,MySQL mysql>mysql>CREATEROLEQueryOK,0rowsaffected(0.02 11GRANT权限ON表名TO角色名 mysql>GRANTSELECTONdemo.settlementTOmysql>GRANTSELECTONdemo.settlementTO'manager';QueryOK,0rowsaffected(0.03sec)mysql>GRANTSELECTONdemo.goodsmasterTOQueryOK,0rowsaffected(0.01mysql>GRANTSELECTONdemo.invcountTO'manager';QueryOK,0rowsaffected(0.01sec) mysql>GRANTSELECT,INSERT,DELETE,UPDATEONdemo.invcountTOmysql>GRANTSELECT,INSERT,DELETE,UPDATEONdemo.invcountTO'stocker';QueryOK,0rowsaffected(0.02sec)mysql>GRANTSELECTONdemo.goodsmasterTO'stocker';QueryOK,0rowsaffected(0.02sec)赋予角色权限 可以通过SHOWGRANTS语句,来查看权限是否创建成功了11mysql>SHOWGRANTSFOR2234+|Grantsformanager@%+|GRANTUSAGEON*.*TO`manager`@`%`++|GRANTSELECTON`demo`.`goodsmaster`TO`manager`@`%`|GRANTSELECTON`demo`.`invcount`TO`manager`@`%`|GRANTSELECTON`demo`.`settlement`TO`manager`@`%`9+4rowsinset(0.00+只要你创建了一个角色,系统就会自动给你一个“USAG给角色“manager”赋予的权限,也就是对商品信息表、盘点表和应付账款表的只读权限。11234mysql>SHOWGRANTSFOR+|Grantsforstocker@%+|GRANTUSAGEON*.*TO`stocker`@`%`|GRANTSELECTON`demo`.`goodsmaster`TO`stocker`@`%`++|GRANTSELECT,INSERT,UPDATE,DELETEON`demo`.`invcount`TO`stocker`@`%`89+3rowsinset(0.00+当需要对业务重新整合的时候,可能就需要对之前创建的角色进行清理,删除一些不11DROPROLE角色名称 11CREATEUSER用户名[IDENTIFIED “[]”表示可选,也就是说,可以指定用户登录时需要验证,也可以不指定验 要给创建一个用户,用户名是“zhangsan”,mysql>CREATEUSERmysql>CREATEUSER'zhangsan'IDENTIFIEDBY'mysql';QueryOK,0rowsaffected(0.02sec)给用户的方式有2种,分别是通过把角色赋予用户给用户,和直接给用户。 mysql>GRANTmysql>GRANT'stocker'TO'zhangsan';QueryOK,0rowsaffected(0.01sec)11GRANT权限ON表名TO用户名 11SHOWGRANTSFOR用户名112345678mysql>SHOWGRANTSFOR+|Grantsforzhangsan@%+|GRANTUSAGEON*.*TO`zhangsan`@`%`++|GRANT`stocker`@`%`TO`zhangsan`@`%`+2rowsinset(0.00+ 如果现在你用的这个用户去登录,你会发现,这个账号是没有任何权限的。你是不是 户“zhangsan”应该有角色“stocker”的权限啊。其实,这是因为,MySQL11SETglobal这条SQL语句的意思是,对所有角色永久激活。运行这条语句,用 代代123456789H:\>mysql-uzhangsan-pEnterpassword:*****etotheMySQLmonitor.Commandsendwith;orYourMySQLconnectionidisServerversion:8.0.23MySQLCommunityServer-Copyright(c)2000,2021,Oracleand/oritsOracleisaffiliates.OthernamesmaybeofOracleCorporationand/orsoftheirType'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputmysql>select*from+++++++|itemnumber|barcode|goodsname|specification|unit|salesprice|+++++++|1|0001|书|16开|本|89.00|31.00|2|0002|笔|NULL|包|5.00|2.87+++++++2rowsinset(0.02 11DROPUSER用户名 角色是权限的集合。你可以直接给用户授予数据库的权限,也可以通过把角色授予用户,从而把角色对数据库的权限全部授予给用户。而用户是数据库的使用者,可以通过给用户授予数据库中资源的权限,来控制使用者对数据库的,消除安全隐知道,有一些程序员喜欢使用Root超级用户来数据库,完全把权限控制放在应用层面实现。这样当然也是可以的。不过 建议你,尽量使用数据库自己的角色和用户机制来控制权限,不要轻易用Root账号。因为Root号代码不安一旦,数据库就会完全失去保护。而且,SL的权限制功能十分完善,应该尽量利用,可以提高效率,而且安全可靠。在今天的课里, 举了一个例子,提到超市运营中的一个职责“。财务可以对商品信息表、盘点表有只读的权限,对应付账款表有增删改查的权限。请你设计一个角色:财untt”具备这权限。给会计“创建一个用户账号“lisi”财务的角色获得对应付账款表增删改查的权限,和对商品信息表、盘点表有只读的权限。 不得售卖。页面已增加防盗追踪,将依 其上一 17|触发器:如何让数据修改自动触发关联操作,确保数据一致性下一 19|日志(上):系统出现问题,如何及时发现CREATEROLEGRANTSELECTONdemo.goodsmasterTO有一点要注意,在使用Windows+SQLServer技术栈时,操作系统的用户等同于MySQL … 18|权限管理:如何控制数据库,

温馨提示

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

评论

0/150

提交评论