《第十章数据库教案数据库安全性.ppt》由会员分享,可在线阅读,更多相关《第十章数据库教案数据库安全性.ppt(20页珍藏版)》请在优知文库上搜索。
1、第十章第十章: 数据库安全性数据库安全性q数据库安全性控制数据库安全性控制qSybase数据库数据安全性控制介绍数据库数据安全性控制介绍数据库安全性控制数据库安全性控制q数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄漏,更改和破坏q系统安全保护措施是否有效是数据库系统的主要性能指标之一q计算机系统的安全模型q存取控制: 按预先定义好的用户权限控制用户对数据库的存取, 保证用户只能存取到有权存取的数据用户DBMSOSDB用户标识和鉴别存取控制操作系统安全保护数据密码存储数据库安全性控制数据库安全性控制用户权限: 用户对数据库中的不同数据对象允许执行的操作权限关系系统中的存取权限: 不
2、同的DBMS具体实现方法是存在一些差别的数据本身:表、属性列外模式, 模式, 内模式:不同类型的数据对象有不同的操作权力数据库安全性控制数据库安全性控制数据对象操作类型模式模式外模式内模式建立、修改、检索建立、修改、检索建立、修改、检索数据表属性列查找、插入、修改、删除查找、插入、修改、删除q存取控制机制包括: 定义用户权限, 该定义被存放到数据字典中合法权限检查, 根据数据字典检查用户权限SQL SERVER数据安全性控制介绍数据安全性控制介绍q数据库安全子系统: 用户权限定义和合法权检查机制组成DBMS安全子系统 qOracle数据库的安全性措施(自学)q数据库应用系统的结构DB1DB1D
3、B1.客户端1客户端2客户端n.安全层次:上机权DB ServerDB表、属性列SQL SERVER数据安全性控制介绍数据安全性控制介绍qSQL server安全层次 任何一个合法的操作系统帐户, 要想访问数据库中的数据, 必须经过SQL server的系统管理员(SA)给予必要的授权qSQL server帐户sa帐户: 通常要求名为sybase的OS 帐户来安装SQL server 产品, 安装完成后, 自动生成一个名为sa的SQL server帐户, sa是唯一的具有SA特权的超级用户创建SQL server的其他帐户: sa可利用系统过程sp_addlogin把任何操作系统帐户接纳为 S
4、QL server 帐户SQL SERVER数据安全性控制介绍数据安全性控制介绍 sp_addlogin ,改变口令: (也可由SA改变)sp_password , ,例如:sp_addlogin scott, tiggersp_password tigger jagnar, scottq数据库用户: 每个SQL server的合法帐户, 要想访问某个DB, 还需进一步被接纳为该DB的合法用户定义DB用户: DB的dbo或系统管理员为当前DB定义新的用户Sybase数据安全性控制介绍数据安全性控制介绍 sp_adduser , sp_dropuser 例如:use empdbgo sp_add
5、user scott scottMgoq访问数据库对象: 一个数据库用户, 要想访问其中的数据库对象, 还必须由该对象的属主授予相应的特权Server帐户scott将以scottM成为数据库empdb的用户 Sybase数据安全性控制介绍数据安全性控制介绍组: 如果几个用户都具有相同的特权, 那么可以把它们组成一个组, 起一个名字, 然后给这个组授权或回收权限建立组: 由dbo完成sp_addgroup 加入组或改变组:sp_changegroup , qpublic组: 每个数据库自动包含一个不可被删除的名为public的组每个用户是public的组员, 还可以且只能再从属于另外一个组Syb
6、ase数据安全性控制介绍数据安全性控制介绍不要授给public过多的权限系统过程sp_helpgroup: 可以报告在一个DB中组的信息qSQL server中的三中角色: SA, SSO和OPERSA(系统管理员角色): 管理系统资源, 向DB用户授权, 授予和回收SA角色, 调谐系统性能等SSO(系统安全员): 创建帐户, 管理帐户和口令, 授予和回收SSO和OPER角色, 管理审计系统OPER(操作员角色): 数据库的备份和装入实际生产系统中: 或让一个帐户身兼三职, 或处于安全和效率的考虑让不同的帐户分担不同的角色 Sybase数据安全性控制介绍数据安全性控制介绍qsa同时具有三中角色
7、的职责q授予和回收角色 sp_role “grant”, “sa_role”, wangq通常把SQL Server各帐户分别授予SA, SSO和OPER帐户, 并锁定sa帐户sp_locklogin login_name, “lock/unlock”qSQL server 帐户授权层次可以是grant或revoke可以是SSO,SA或OPERSybase数据安全性控制介绍数据安全性控制介绍SA: 可以给所有用户授权dbo: 只可给本数据库用户授权DB对象属主: 只可对表或视图授权其他用户和public组: 只能接受授权qdbo: SQL server帐户用create database 命令
8、建立数据库后, 就成为该数据库的dboqdbo的权力(限于该DB)建表、其他的数据库对象SAdboDB对象属主其他用户, public组Sybase数据安全性控制介绍数据安全性控制介绍增加DB用户, 为他们分配权力对DB进行备份和恢复为了便于授权管理, 建议让dbo成为该DB中一切对象的属主dbo可以用setuser命令, 临时扮演该DB中任何一个用户SA在访问该DB时自动成为该DB的dboq数据库对象属主: 指用create命令建立一个数据库对象的数据库用户, 此后它对该对象具有一切操作权限q普通用户: 不拥有DB和自己的数据库对象的用户Sybase-授权控制命令授权控制命令由SA或dbo或
9、对象属主明显授权或加入到某组中q权力q语句权力: 建立数据库对象的语句, 由SA或dbo授予create database 仅由SA授予,且仅可以使用在 master中使用进行限定操作权力语句权力-允许执行某些T-SQL语句数据库对象权力-允许对该对象执行某操作Sybase-授权控制命令授权控制命令create defaultcreate procedurecreate rulecreate tablecreate view注意: create index, create trigger仅属于表的主人, 不可授予他人q授权语句: grant, revokegrant all| to publi
10、c|revoke all| from public|dbo可授予建立数据库对象的权利Sybase-授权控制命令授权控制命令q例子: 由SA执行下列语句use pubsgogrant all to johngrant create table to marygoq数据库对象的访问权力: 由对象属主进行对象权利的授予Sybase-授权控制命令授权控制命令表 select insert update delete refrences视图 select insert update delete 列 select update 存储过程 execute q授权语句: grant, revokegrant
11、 all| on |() to public|revoke all| on |() from public|Sybase-授权控制命令授权控制命令q例子: grant all on SC to publicrevoke update on SC(Grade) from publicq成为数据库的属主dbo的方法: 授予 某一SQL server账户具有创建数据库的能力: 以SA注册后, 在master数据库中grant create database to loginnameSA创建数据库DB1后, 改变属主use DB1sp_changeowner loginnameqOracle 数据安全
12、性控制(自学) 使用存储过程的优势使用存储过程的优势l存储过程:在服务器上的存储过程:在服务器上的Server环境下运行,可利用环境下运行,可利用Server优化器在运行时获得最佳性能。优化器在运行时获得最佳性能。例如:例如:CREATE PROCEDURE proc4(p1 char(15),p2 char(20), p3 int) AS INSERT INTO workers values(p1,p2,p3)RETURNEXEC Proc4 Bob lint,Sales,3333CREATE PROCEDURE proc_students-dept(dept varchar(20) AS
13、SELECT * FROM students WHERE department= dept RETURN EXEC proc_students-dept dept=CS使用存储过程的优势使用存储过程的优势l存储过程:在服务器上的存储过程:在服务器上的Server环境下运行,可利用环境下运行,可利用Server优化器在运行时获得最佳性能。优化器在运行时获得最佳性能。l好处:好处:-性能上性能上,服务器功能强大,在物理上在同一系统中,服务器功能强大,在物理上在同一系统中,无网络传输;无网络传输;-客户客户/服务器开发上服务器开发上,客户与服务器方开发任务分离,客户与服务器方开发任务分离,客户方应用程序可重复使用服务器端组件;客户方应用程序可重复使用服务器端组件;-安全性上安全性上,用存储过程来增删改操作,编程时可控制,用存储过程来增删改操作,编程时可控制上述操作;上述操作;-数据完整性上数据完整性上,用存储过程实现合法性检查等;,用存储过程实现合法性检查等;-提高数据与应用的独立性提高数据与应用的独立性,改变数据库逻辑结构时,改变数据库逻辑结构时,可通过修改存储过程来避免修改应用。可通过修改存储过程来避免修改应用。