1 安全控制
1.1 基本概念
安全性:保护数据以防止不合法用户故意造成的破坏
完整性:保护数据以防止合法用户无意中造成的破坏
1.2 数据库安全控制的目标
保护数据免受意外或故意的丢失、破坏或者滥用
1.3 数据库安全的威胁需要考虑的情况
可用性的损失
机密性数据的丢失
私密性数据的丢失
偷窃和欺诈
意外的损害
1.4 安全控制模型
操作权限控制
文件操作控制
1.5 授权和认证
授权:将合法访问数据库或数据库对象的权限授予用户的过程
认证:是一种鉴定用户身份的机制
DBMS的访问控制
自主存取控制:用户对不同的数据对象具有具有不同的存取权限
强制存取控制:每一个数据对象被标以一定的密级,每一个用户被授予一个许可证级别
2 存取控制
2.1 自主存取控制
权限种类
对DBMS的维护权限
对数据库中的对象和数据进行操作的权限
对数据库对象的操作权限
对于数据库的操作权限
用户分类
系统管理员
数据库对象拥有者
普通用户
2.2 强制存取控制
基本概念
能够通过授权机制来有效控制对敏感数据的存取
DBMS将全部实体划分为主体和客体
主体:是系统中的活动实体,既包括DBMS所管理的实际用户每页包括代表用户的各个进程
客体:是系统中的被动实体,是受主体操纵的没包括文件、基本表、索引、视图等
子主题 1
敏感度级别
绝密Top Secret
秘密Secret
可信Confidential
公开Public
通用安全性分级模型
A类:提供验证保护(最高)
B类:提供强制保护,B2>B1
C类:提供自主保护,C1最小,C2>C1
D类:提供最小保护
3 审计跟踪
基本概念
是一种特殊的文件或数据库,系统在上面自动记录用户对常规数据的所有操作
审计跟踪记录包含的信息
操作请求
操作终端
操作人
操作日期和时间
元组、属性和影响
新值
旧值
4 SQL Server 的安全控制
4.1 身份验证模型
WIndows身份验证模式
混合身份验证模式
允许Windows授权用户和SQL授权用户登录
SQL Server的身份验证的登录信息都保存在SQL Server实例上而Windows身份验证的登录信息是由windows和SQLServer实例共同保存的
4.2 登录账户
分类
由SQL Server自身负责身份验证的登录账户
登录到SQL Server的Windows网络用户,可以是组账户或用户账户
实例:创建SQL Server身份验证的登录账户登录名为Sql_user,密码是1234
Create LOGIN Sql_user WITH Password = '1234'
创建和修改账户
创建账户Create LOGIN login_name WITH Password =‘’
修改密码:ALter LOGIN user_name WITH password =''
启用已经禁用的登录账户:Alter LOGIN login_name WITH Password =''
修改账户名:Alter LOGIN user_name WITH Name =new_user_name
删除用户账户:Drop LOGIN user_name
4.3 数据库用户
分类
系统管理员
数据库对象拥有者
普通用户
创建用户
Create USER user_name
Guest 用户(匿名用户)
启用guest用户:GRANT CONNECT TO guest
禁用guest用户:ReVoke CONNECT TO guest
删除数据库用户:DROP user_name
4.4 权限管理
对象级别
Select
Insert
UPdate
Delete
References
Execute
实例1:使用GRANT OPTION选项,授予用户user_name对Employer视图中EmployeeID列具有Reference权限:
GRANT Reference (EmployeeID) ON Employee
TO user_name WITH GRANT OPTION
实例2:授予用户user_name 对test.Employee存储过程具有Execute权限
GRANT Execute ON OBJECT:: test.Employee TO user_name
语句级别
Create DataBase
Create Procedure
Create Table
Create View
Create Function
Backup Database:备份数据库
Backup LOG:备份日志
实例1:授予用户user1和user2都具有创建表和视图的权限
GRANT Create Table,Create View TO user1,user2
拒绝权限:Deny...
收回权限:Revoke ...
隐含级别
4.5角色
分类
固定服务器角色
bulkdamin:具有执行Bulk INsert语句的权限
dbcreator:具有创建、修改、删除和还原数据库的权限
diskadmin:管理磁盘文件的权限
securityadmin:管理登录账户、读取错误日志、执行Create Database
setupadmin:添加和删除链接服务器的权限
sysadmin:系统管理员角色,任何操作的权限
Serveradmin:设置服务器级别的配置选项的权限
processadmin:进程管理的权限
添加角色的存储过程:sp_addsrvrolemember
固定数据库角色
db_accessadmin:添加或删除数据库用户的权限
db_backupoperator:备份数据库、日志的权限
db_datareader:查询数据库中所有用户的权限
db_datawriter:插入、删除和更改数据库中所有用户数据的权限
db_ddladmin:执行数据定义语言DDL的权限
db_denydatareader:不允许查询
db_owner:在数据库中年进行全部操作的权限
db_decurityadmin:管理数据库角色、角色成员的权限
添加角色:sp_addrolemember
删除角色:sp_droprolemember
自定义
用户定义的角色属于数据库一级的角色
创建角色:create ROLE role_name [AUTHORIZATION owner_name]owner_name是该角色拥有者
5 Oricle的安全控制
5.1 分类
数据库级别:数据库级别的安全性通过用户身份认证和授予用户相应系统权限来保证
表级
行级
级
5.2 两级安全管理员
全局数据安全管理员:负责管理、协调,维护全局数据的一致性和安全性
场地数据安全管理员:负责维护本结点数据库的安全性、包括用户管理、系统特权与角色的管理
5.3 用户与资源管理
Oricle数据库中的用户按其操作权限的大小可分为DBA用户和普通用户
DBA用户:实在数据库系统安装时由DBMS自动创建生成的,它们是sys用户,用于全部的系统权限
普通用户:是有DBA用户或相应特权的 用户创建,并授予系统特权的用户
5.4 权限管理
系统特权:DBA可以根据具体情况授予用户相应的特权
对象特权:用户维护表级、行级与列级数据的安全性
5.5 角色
Connect:具有这种角色的用户不能在数据中建立任何对象,但是可以查询数据字典以及访问权限的数据对象
Resource:可以在数据库中建立关系表、视图、序列、索引、聚集、存储过程、存储函数、触发器、数据库链路
DBA :所有系统权限
5.6 审计功能