数据库课件第四章.ppt
用户标识与鉴别01存取控制02自主存取控制方法03授权与回收04数据库角色05强制存取控制方法06数据库安全性控制(续)4.2.3自主存取控制(MAC)方法定义存取权限存取权限存取权限由两个要素组成01数据对象02操作类型03定义一个用户可以在哪些数据对象上进行哪些类型的操作在数据库系统中,定义存取权限称为授权(Authorization)授权定义经过编译后存放在数据字典中030102自主存取控制(MAC)方法(续)定义存取权限自主存取控制(MAC)方法(续)关系系统中的存取权限类型关系数据库系统中的存取权限 对象类型对象操作类型数据库模式基本表CREATESCHEMACREATETABLE,ALTERTABLE模式视图索引CREATEVIEWCREATEINDEX数据基本表和视图SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALLPRIVILEGES数据属性列SELECT,INSERT,UPDATE,REFERENCES,ALLPRIVILEGESA关系系统中的存取权限(续)定义方法BGRANT/REVOKE自主存取控制(MAC)方法(续)01用户标识与鉴别02存取控制03自主存取控制方法04授权与回收05数据库角色06强制存取控制方法数据库安全性控制(续)01GRANT语句向用户授予权限,REVOKE语句收回授予的权限。02用户对某类数据库对象具有何种操作权力是个政策问题而不是技术问题。数据库管理系统的功能是保证这些决定的执行。4.2.4授权与回收一般格式:GRANT权限[,权限]…ON对象类型对象名[,对象类型对象名]…TO用户[,用户]…[WITHGRANTOPTION];发出GRANT语句的可以是DBA,也可以是该数据库对象创建者,也可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC,即全体用户。1.GRANT若指定了WITHGRANTOPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户;若没有指定此子句,则获得某种权限的用户只能使用该权限,不能传播该权限。SQL标准允许具有WITHGRANTOPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或者其祖先。0102GRANT(续)010203040506例1把查询Student表的权限授给用户U1GRANTSELECTONTABLEStudentTOU1;例2把对Student表和Course表的全部操作权限授予用户U2和U3GRANTALLPRIVILEGESONTABLEStudent,CourseTOU2,U3;例3把对表SC的查询权限授予所有用户GRANTSELECTONTABLESCTOPUBLIC;GRANT(续)例5把对表SC的INSERT权限授予U5用户,并允许将此权限再授予其他用户GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;此语句执行后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限,他可以将此权限授予U6GRANTINSERTONTABLESCTOU6WITHGRANTOPTION;02010304GRANT(续)REVOKE权限[,权限]…ON对象类型对象名[,对象类型对象名]…FROM用户[,用户]…[CASCADE︱RESTRICT];授予的权限可以由DBA或其他授权者用REVOKE语句收回,REVOKE语句的一般格式为:01RESTRICT:若此用户将权限传播给别的用户则拒绝执行。缺省值为RESTRICT,有的DBMS缺省值为CASCADE。CASCADE:将用户及其传播的权限级联收回022.REVOKE例8把用户U4修改学生学号的权限收回01REVOKEUPDATE(Sno)ONTABLEStudentFROMU4;02例9收回所有用户对表SC的查询权限03REVOKESELECTONTABLESCFROMPUBLIC;04例10把用户U5对SC表的INSERT权限收回05REVOKEINSERTONTABLESCFROMU5CASCADE;06REVOKE(续)REVOK