文章适用于计算机等级考试NCRE三级数据库技术,内容来源于网络,文章内容侵删,如果文章和个人的理解有出入,请务必以自己的知识储备为准,仅做参考
9.1 安全控制概述
9.1.1 数据库安全性与数据完整性
- 数据库安全性:保护数据不被不合法用户恶意篡改
- 数据完整性:保护数据不被合法用户无意破坏
9.1.2 数据库安全的目标
保护数据免受意外或故意的丢失、破坏或滥用
9.1.3 数据库安全的威胁
- 可用性损失
- 机密性数据损失
- 私密性数据损失
- 偷窃和欺诈
- 意外的损害
9.1.4 安全控制模型的阶段
- 身份验证(USER)
- 操作权限控制(DBAS与DBMS)
- 文件操作控制(OS)
- 加密存储与冗余(DB)
9.1.5 认证与授权
- 认证:一种鉴别用户身份的机制
- 授权:将合法访问DB或对象的权限授予给USER的过程
- DBMS安全控制方案:通常采用自主存取控制和强制存储控制两种方案
9.2 存取控制
9.2.1 自主存取控制
又称自主安全模式
- 实现语句:GRANT、REVOKE、DENY
- 权限种类:维护权限与操作权限
- 用户分类:系统管理员sa、数据库对象拥有者、普通USER
9.2.2 强制存储控制
为避免自助存取模式下用户的无意操作,采取强制存取控制
- 实体分类 :
- 主体:系统活动实体,包括实际USER和进程
- 客体:被动实体,包括受主体操控的FILE、TABLE、VIEW
- 实体级别 :
- 主体:许可证级别
- 客体:保密级别(绝密、秘密、可信、公开)
- 强制存取控制规则 :
- 仅当主体级别≥客体级别,可读
- 仅当主体级别=客体级别,可写
9.3 审计跟踪
数据库系统会自动记录用户对常规数据的所有操作,该行为称为审计跟踪,其实质上一种特殊的文件或数据库,对数据安全起到辅助作用。
9.4 统计数据库
统计数据库安全系统用户控制对统计数据库的访问,统计数据库中只允许查询聚合数据,不能查询单个数据。
9.5 SQL SERVER安全控制方案
9.5.1 身份验证模式
- Windows身份验证:当前Windows系统用户
- 混合验证:包含Windows身份验证和SQL SERVER授权用户
9.5.2 登录账户
- 类别 :
- SQL SERVER自身负责验证的账户
- 登陆到SQL SERVER的Windows网络账户
- 建立登陆账户 :
CREATE LOGIN 登录名 WITH PASSWORD = '密码' - 修改登陆账户属性 :
ALTER LOGIN 登录名 - 删除登陆账户 :
DROP LOGIN 登录名
9.5.3 数据库用户
登录账户只能连接到SERVER,不能访问和操作DB,需要DB USER。
- 映射:将登录账户映射为1个或多个DB USER,默认USER是dbo
- 建立DB USER :
CREATE USER 用户名 [FOR | FROM] LOGIN 登录名 - Guest USER:Guest是特殊的DB USER,访问时为匿名访问
- 删除DB USER :
DROP USER 用户名
9.5.4 权限管理
登录账户成为合法用户后暂时没有任何操作权限,需要为用户授权
- 对象级别的权限 :
- 分类:SELECT、INSERT、UPDATE、DELETE、REFERENCES、EXECUTE
- 授予权限:
GRANT 对象权限 ON 对象 TO (主体) - 拒绝权限:
DENY 对象权限 ON 对象 TO (主体) - 收回权限:
REVOKE 对象权限 ON 对象 TO (主体)
- 语句级别的权限:CREATE DATABSASE | PROCEDURE | TABLE | VIEW | FUNCTION | BACK UP DATABASE | LOG
9.5.5 角色
一组具有相同权限的用户,分为系统角色和用户角色,其中系统角色分为固定服务器角色(服务器级角色)和固定数据库角色(数据库级角色)
- 固定服务器角色 :
- Bulkadmin:执行BULK INSERT语句权限
- Dbcreator:创建、修改、删除、还原DB权限
- Diskadmin:管理磁盘权限
- Processadmin:管理进程权限
- Securityadmin:管理登录账户,读取错误日志的权限
- Serveradmin:服务器级别的配置选项和关闭服务器权限
- Setupadmin:添加、删除、链接服务器
- Sysadmin:系统管理员,Win超级用户自动设为Sysadmin
- Public:每个登录名默认是该角色的成员
- 固定数据库角色 :
- Db_accessadmin:添加或删除DB权限
- Db_backupoperator:备份DB、LOG权限
- Db_datareader:查询DATA权限
- Db_datawriter:插入、删除、更改DATA权限
- Db_ddladmin:DDL权限
- Db_denydatareader:不允许查询DATA权限
- Db_denydatawriter:不允许插入、删除、更改DATA权限
- Db_owner:具有全部权限,即dbo
- Db_securityadmin:具有管理数据库角色、角色成员和DB中语句和对象权限
- 用户定义角色 :
- 用户定义的角色属于数据库级角色
- 用户定义的角色可以是用户定义角色或数据用户
- 使用
CREATE ROLE创建用户 - 使用
DROP ROLE删除用户
9.6 Oracle安全管理
9.6.1 安全机制
- 安全机制划分:数据库级、表级、列级、行级的安全控制
- 数据库级的安全性:通过用户身份认证和授予用户系统权限来保证
- 表级、列级、行级:通过授予或回收对象权限保证
9.6.2 安全管理员
- 全局级:负责管理、协调,维护全局数据一致性和安全性
- 场地级:负责本节点数据库安全性,用户管理、系统特权与角色管理
9.6.3 用户资源管理
按权限大小分为:
- DBA用户:由DBMS自动创建,sys与system用户拥有全部系统权限
- 普通用户:由DBA用户或其他用户创建并授予系统特权
- 建立用户语法 :
CREATE USER 用户名 IDENTIFIED BY - 修改用户语法 :
ALTER USER 用户名 - 删除用户语法 :
DROP USER 用户名
9.6.4 权限管理
- 系统特权 :
- Connect:不能建立对象,可以查询数据字典和访问数据对象
- Resource:可以建立数据库对象
- DBA:拥有预定义的全部权限
- 对象特权:用于维护表级、行级、列级数据的安全性