您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第十章_数据库教案数据库安全性
第十章:数据库安全性数据库安全性控制Sybase数据库数据安全性控制介绍数据库安全性控制数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄漏,更改和破坏系统安全保护措施是否有效是数据库系统的主要性能指标之一计算机系统的安全模型存取控制:按预先定义好的用户权限控制用户对数据库的存取,保证用户只能存取到有权存取的数据用户DBMSOSDB用户标识和鉴别存取控制操作系统安全保护数据密码存储数据库安全性控制用户权限:用户对数据库中的不同数据对象允许执行的操作权限关系系统中的存取权限:不同的DBMS具体实现方法是存在一些差别的数据本身:表、属性列外模式,模式,内模式:不同类型的数据对象有不同的操作权力数据库安全性控制数据对象操作类型模式模式外模式内模式建立、修改、检索建立、修改、检索建立、修改、检索数据表属性列查找、插入、修改、删除查找、插入、修改、删除存取控制机制包括:定义用户权限,该定义被存放到数据字典中合法权限检查,根据数据字典检查用户权限SQLSERVER数据安全性控制介绍数据库安全子系统:用户权限定义和合法权检查机制组成DBMS安全子系统Oracle数据库的安全性措施(自学)数据库应用系统的结构DB1DB1DB1...客户端1客户端2客户端n...安全层次:上机权DBServerDB表、属性列SQLSERVER数据安全性控制介绍SQLserver安全层次任何一个合法的操作系统帐户,要想访问数据库中的数据,必须经过SQLserver的系统管理员(SA)给予必要的授权SQLserver帐户sa帐户:通常要求名为sybase的OS帐户来安装SQLserver产品,安装完成后,自动生成一个名为sa的SQLserver帐户,sa是唯一的具有SA特权的超级用户创建SQLserver的其他帐户:sa可利用系统过程sp_addlogin把任何操作系统帐户接纳为SQLserver帐户SQLSERVER数据安全性控制介绍sp_addloginloginID[,口令[,缺省数据库]]改变口令:(也可由SA改变)sp_password旧口令,新口令[,login_ID]例如:sp_addloginscott,tiggersp_passwordtiggerjagnar,scott数据库用户:每个SQLserver的合法帐户,要想访问某个DB,还需进一步被接纳为该DB的合法用户定义DB用户:DB的dbo或系统管理员为当前DB定义新的用户Sybase数据安全性控制介绍sp_adduserloginID[,用户名[,组名]]sp_dropuser用户名例如:useempdbgosp_adduserscottscottMgo访问数据库对象:一个数据库用户,要想访问其中的数据库对象,还必须由该对象的属主授予相应的特权Server帐户scott将以scottM成为数据库empdb的用户Sybase数据安全性控制介绍组:如果几个用户都具有相同的特权,那么可以把它们组成一个组,起一个名字,然后给这个组授权或回收权限建立组:由dbo完成sp_addgroup组名加入组或改变组:sp_changegroup组名,用户名public组:每个数据库自动包含一个不可被删除的名为public的组每个用户是public的组员,还可以且只能再从属于另外一个组Sybase数据安全性控制介绍不要授给public过多的权限系统过程sp_helpgroup:可以报告在一个DB中组的信息SQLserver中的三中角色:SA,SSO和OPERSA(系统管理员角色):管理系统资源,向DB用户授权,授予和回收SA角色,调谐系统性能等SSO(系统安全员):创建帐户,管理帐户和口令,授予和回收SSO和OPER角色,管理审计系统OPER(操作员角色):数据库的备份和装入实际生产系统中:或让一个帐户身兼三职,或处于安全和效率的考虑让不同的帐户分担不同的角色Sybase数据安全性控制介绍sa同时具有三中角色的职责授予和回收角色sp_role“grant”,“sa_role”,wang通常把SQLServer各帐户分别授予SA,SSO和OPER帐户,并锁定sa帐户sp_locklogin[login_name,“[lock/unlock]”]SQLserver帐户授权层次可以是grant或revoke可以是SSO,SA或OPERSybase数据安全性控制介绍SA:可以给所有用户授权dbo:只可给本数据库用户授权DB对象属主:只可对表或视图授权其他用户和public组:只能接受授权dbo:SQLserver帐户用createdatabase命令建立数据库后,就成为该数据库的dbodbo的权力(限于该DB)建表、其他的数据库对象SAdboDB对象属主其他用户,public组Sybase数据安全性控制介绍增加DB用户,为他们分配权力对DB进行备份和恢复为了便于授权管理,建议让dbo成为该DB中一切对象的属主dbo可以用setuser命令,临时扮演该DB中任何一个用户SA在访问该DB时自动成为该DB的dbo数据库对象属主:指用create命令建立一个数据库对象的数据库用户,此后它对该对象具有一切操作权限普通用户:不拥有DB和自己的数据库对象的用户Sybase--授权控制命令由SA或dbo或对象属主明显授权或加入到某组中权力语句权力:建立数据库对象的语句,由SA或dbo授予createdatabase仅由SA授予,且仅可以使用在master中使用进行限定操作权力语句权力--允许执行某些T-SQL语句数据库对象权力--允许对该对象执行某操作Sybase--授权控制命令createdefaultcreateprocedurecreaterulecreatetablecreateview注意:createindex,createtrigger仅属于表的主人,不可授予他人授权语句:grant,revokegrant{all|语句清单}to{public|用户名清单}revoke{all|语句清单}from{public|用户名清单}dbo可授予建立数据库对象的权利Sybase--授权控制命令例子:由SA执行下列语句usepubsgograntalltojohngrantcreatetabletomarygo数据库对象的访问权力:由对象属主进行对象权利的授予Sybase--授权控制命令表selectinsertupdatedeleterefrences视图selectinsertupdatedelete列selectupdate存储过程execute授权语句:grant,revokegrant{all|权限清单}on{表名|视图名|过程名}[(列名)]to{public|用户名清单}revoke{all|权限清单}on{表名|视图名|过程名}[(列名)]from{public|用户名清单}Sybase--授权控制命令例子:grantallonSCtopublicrevokeupdateonSC(Grade)frompublic成为数据库的属主dbo的方法:授予某一SQLserver账户具有创建数据库的能力:以SA注册后,在master数据库中grantcreatedatabasetologinnameSA创建数据库DB1后,改变属主useDB1sp_changeownerloginnameOracle数据安全性控制(自学)使用存储过程的优势存储过程:在服务器上的Server环境下运行,可利用Server优化器在运行时获得最佳性能。例如:CREATEPROCEDUREproc4(@p1char(15),@p2char(20),@p3int)ASINSERTINTOworkersvalues(@p1,@p2,@p3)RETURNEXECProc4‘Boblint’,’Sales’,3333CREATEPROCEDUREproc_students-dept(@deptvarchar(20))ASSELECT*FROMstudentsWHEREdepartment=@deptRETURNEXECproc_students-dept@dept=‘CS’使用存储过程的优势存储过程:在服务器上的Server环境下运行,可利用Server优化器在运行时获得最佳性能。好处:-性能上,服务器功能强大,在物理上在同一系统中,无网络传输;-客户/服务器开发上,客户与服务器方开发任务分离,客户方应用程序可重复使用服务器端组件;-安全性上,用存储过程来增删改操作,编程时可控制上述操作;-数据完整性上,用存储过程实现合法性检查等;-提高数据与应用的独立性,改变数据库逻辑结构时,可通过修改存储过程来避免修改应用。
本文标题:第十章_数据库教案数据库安全性
链接地址:https://www.777doc.com/doc-2165236 .html