一、不安全因素:
1.非授权用户的恶意修改
2.重要数据泄漏
3.安全环境的脆弱
二、数据库安全控制
用户身份鉴别
1.静态口令鉴别
2.动态口令鉴别
3.生物特征鉴别
4.智能卡鉴别
存取控制
1.定义用户权限(对不同用户给予对不同数据的不同操作权限)
2.合法权限检查
自主存取控制
1)授权
1.权限:ALL PRIVILEGES(全部权限),INSERT(插入),UPDATE(更新),DELETE(删除),ALTER(修改表设计)
2.授予:GRANT <权限> [,...] ON <对象类型> <对象名> [,...] TO <用户> [,...] [WITH GRANT OPTION];
--WITH GRANT OPTION:获得该权限的用户可以将该权限授予别的用户,没有这句话则不能
3.收回权限:REVOKE <权限>[,...] ON <对象类型> <对象名> [,...] FORM <用户>[,...] [CASCADE|RESTRICT]
4.创建数据库模式的权限:CREATE USER <USERNAME> [WITH] [DBA|RESOURCE|CONNECT]
--只有系统的超级用户才有权限创建一个新的数据库用户,而新的数据库用户有三种权限DBA、RESOURCE、CONNECT(默认)
--DBA:超级用户,可以创建新的用户,新的模式,新的基本表,新的视图,并且拥有所有数据库对象的存取权限,还可以把这些1权限授予其他 用户
--RESOURCE:该身份的用户可以创建新的基本表和视图,成为所创建对象的属主,可以将其所拥有权限授予其他用户
--CONNECT:只能登陆数据库,以及拥有其他用户授予他的权限
2)数据库角色
1.创建角色:CREATE ROLE <角色名>
2.角色授权:GRANT <权限> [,...] ON <对象类型> <对象名> TO <角色>[,...]
3.将一个角色授予其他角色或者用户(一个角色的权限是他所拥有的角色的权限的和):GRANT <角色>[,...] TO <另一个角色> [WITH ADMIN OPTION]
--WITH ADMIN OPTION:该角色可以把其获得的这个角色授予其他角色或者用户
4.角色权限的收回:REVOKE <权限> [,...] ON <对象类型> <对象名> FROM <角色> [,...]
强制存取控制(机密部门)
1.强制存取控制机制:通过对比主体和客体的敏感度标记,最终确定主体的能否存取客体
2.实体:用户
3.客体:被动实体即受主体操纵的文件,索引,表,视图等
4.敏感度标记:数据库系统为每个主体和客体实例指派一个敏感度标记,主体敏感度标记称为许可证级别,客体的敏感度标记称为密级
5.某一主体(比如用户)以标记label注册入系统时的存取规则:
--许可证等级高于等于密级时,才可以读取相应的客体
--许可证等级低于等于客体时,主体才可以写相应的客体(主体对写入的数据可以赋予高于等于自身许可证级别的密级)
三、视图机制:使用户看到对应其身份的数据
四、审计(将用户对数据的操作自动记录到审计日志中)
1.审计事件:服务器事件,系统权限,语句事件,模式对象事件
--服务器事件:数据库服务器的启动,停止,数据库配置文件的重新加载
--系统权限:对系统拥有的结构或者模式对象进行操作的审计
--语句事件:对SQL语句的审计
--模式对象事件:对特定模式对象(表,视图,存储过程,函数)上进行的SELECT或DML操作的审计
2.审计功能:审计查阅方式,审计规则(数据库初始化时设定),审计分析和报表功能,审计日志管理功能,审计设置和审计记录信息的视图
--审计查阅方式:基本的,可选的,有限的...
--审计日志管理功能:防误操作(先转储后删除),对转储的审计记录文件提供完整性和保密性保护,只允许审计员查阅和转储审计记录
3.设置与取消审计功能
--AUDIT <操作> ON <模式对象>
--NOAUDIT <操作> ON <模式对象>
五、数据加密
1.存储加密
2.传输加密