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:拥有预定义的全部权限
  • 对象特权:用于维护表级、行级、列级数据的安全性
相关推荐
雾时之林6 分钟前
Linux--软件管理、源码包安装
linux·服务器·数据库
老纪的技术唠嗑局2 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE2 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄2 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
Python私教2 小时前
签名 URL 刷新导致审批失效?别急着删掉所有 query
python·安全
weixin_618232302 小时前
OpenAI 因安全暂停 Astra:前沿 Agent 第一次撞上“关键级”红线
安全
少晓年3 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
Python私教3 小时前
一次性批准令牌:挡住旧授权误发新版本的工程设计
python·安全
SelectDB3 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB3 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库