NCRE-三级数据库技术-第9章-安全管理

文章适用于计算机等级考试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 USERCREATE USER 用户名 [FOR | FROM] LOGIN 登录名
  • Guest USER:Guest是特殊的DB USER,访问时为匿名访问
  • 删除DB USERDROP 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:拥有预定义的全部权限
  • 对象特权:用于维护表级、行级、列级数据的安全性
相关推荐
lzhdim2 小时前
SQL 入门 9:SQL 高级子查询:ANY、EXISTS 与多位置应用
java·开发语言·数据库·sql·mysql
曾凡宇先生2 小时前
mysql连接问题
数据库
jwt7939279372 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
Yvonne爱编码2 小时前
数据库---Day8 多表联合查询
数据库
FreeBuf_2 小时前
14000余台F5 BIG-IP暴露,高危RCE漏洞正遭活跃利用
tcp/ip·安全·web安全
云飞云共享云桌面3 小时前
SolidWorks三维设计不用单独买电脑,1台服务器10个设计用
运维·服务器·数据库·3d·电脑
Xudde.3 小时前
班级作业笔记报告0x08
笔记·学习·安全·web安全
l1t3 小时前
DeepSeek总结的PAX:PostgreSQL存储引擎
数据库·postgresql
我不听你讲话3 小时前
PostgreSQL 日常维护核心内容总结
数据库·postgresql