在这里插入图片描述

一、数据安全性概述

数据库的安全性是指保护数据库以防不合法使用所造成的数据泄露、更改或破坏。

1)数据不安全因素

  • 1. 非授权用户对数据库的恶意存取和破坏

    • 黑客和敌对分子有可能盗窃数据库中的重要数据;一些机密信息被暴露。
    • 安全措施:
      • 强制存取控制
      • 数据加密存储
      • 数据加密传输
      • 审计日志分析
      • ……
  • 2. 数据库中的重要或敏感的数据被泄露

    • 黑客和敌对分子有可能盗窃数据库中的重要数据;一些机密信息被暴露。
    • 安全措施:
      • 强制存取控制
      • 数据加密存储
      • 数据加密传输
      • 审计日志分析
      • ……
  • 3. 安全环境的脆弱性

    • 环境安全
      • 硬件安全性
      • 操作系统安全性
      • 网络系统安全性
      • ……
    • 安全措施
      • 建立一套可信计算机系统的概念和标准

2)安全标准

在这里插入图片描述

  1. TCSEC
  • 全称:Trusted Computer System Evaluation Criteria 可信计算机系统评价标准

    • 是计算机系统安全评估的第一个正式标准;
    • 于1970年由美国国防科学委员会提出,并于1985年12月由美国国防部公布;
    • TCSEC最初只是军用标准,后来延至民用领域;
    • TCSEC将计算机系统的安全划分为4个等级、7个级别。
  • TDI :

    • 1991年4月美国NCSC(国家计算机安全中心)颁布了《可信计算机系统评估标准关于可信数据库系统的解释》(Trusted Database Interpretation 简称TDI),又称紫皮书;
    • TDI将TCSEC扩展到数据库管理系统;
    • TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。
    • TCSEC / TDI标准的基本内容
      • 四组(division)七个等级
        • D
        • C(C1,C2)
        • B(B1,B2,B3)
        • A(A1)
          在这里插入图片描述
      • 举例:
        • C2级:Windows 2000、Oracle 7
          • 安全产品的最低档次。提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离;达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色。
        • B1级:
            1. 操作系统:惠普公司的HP-UX BLS release 9.09+
            1. 数据库:Oracle公司的Trusted Oracle 7、Sybase公司的Secure SQL Server version 11.0.6
          • 标记安全保护。“安全”(Security)或“可信的”(Trusted)产品。对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制。
  1. CC标准
  • 提出国际公认的表述信息技术安全性的结构。
  • 把信息产品的安全要求分为:
    • 安全功能要求
    • 安全保证要求
  • CC文本组成:
    • 简介和一般模型
      • 有关术语、基本概念和一般模型以及与评估有关的一些框架
    • 安全功能要求
      • 列出了一系列类、子类和组件
    • 安全保证要求
      • 列出了一系列保证类、子类和组件
      • 提出了评估保证级(Evaluation Assurance Level,EAL),从EAL1至EAL7共分为七级
        在这里插入图片描述

3)安全控制方法

非法使用数据库的情况:

  1. 编写合法程序绕过数据库管理系统及其授权机制;
  2. 直接或编写应用程序执行非授权操作;
  3. 通过多次合法查询数据库从中推导出一些保密数据。

计算机系统中,安全措施是一级一级层层设置

  • 用户:系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统。
  • DBMS:DBMS进行存取控制,只允许用户执行合法操作。
  • OS:操作系统依据自己的保护措施确保系统安全。
  • DB:数据以密码形式存储到数据库中。

在这里插入图片描述

存取控制流程:
在这里插入图片描述

数据库安全性控制的常用方法:
在这里插入图片描述
安全控制方法:

  1. 用户身份鉴别
  2. 存取控制
  3. 自主存取控制方法
  4. 授权:授予与回收
  5. 数据库角色
  6. 强制存取控制方法

1. DM数据库安全机制

1.1 数据库安全性控制

数据库安全管理:采取各种安全措施对数据库及其相关文件和数据进行保护。

数据安全:指以保护措施确保数据的完整性、保密性、可用性、可控性和可审查性

DM安全管理功能
在这里插入图片描述

DM安全版本:
DM 数据库版本有标准版、企业版和安全版的区别,一般将标准版和企业版统称为普通版。

  • 普通版本:提供的安全管理功能有:用户标识与鉴别、自主访问控制、审计、通信加密、存储加密、加密引擎、资源限制与客体重用;
  • 安全版本:在普通版本的基础上,还提供“四权分立”安全机制和强制访问控制安全管理功能,能满足对安全管理有更高需求的数据库用户的要求。
1.2 用户标识与鉴别
(1)DM的管理用户

DM数据库采用"三权分立"或"四权分立"的安全机制。

  • 三权分立机制
    • 将系统管理员分为数据库管理员数据库安全员数据库审计员三种类型。
    • 在安装过程中,DM数据库会预设数据库管理员账号SYSDBA、数据库安全员账号SYSSSO和数据库审计员账号SYSAUDITOR,其缺省口令都与用户名一致。
  • 四权分立机制
    • 系统管理员分为数据库管理员、数据库对象操作员、数据库安全员、数据库审计员四种类型。
    • 在“三权分立”的基础上,新增数据库对象操作员账户SYSDBO,其缺省口令为SYSDBO
1. 数据库管理员(DBA)

每个数据库至少需要一个DBA 来管理,DBA 可能是一个团队,也可能是一个人。在不同的数据库系统中,数据库管理员的职责可能也会有比较大的区别。

DBA的主要职责:

  • 评估数据库服务器所需的软、硬件运行环境
  • 安装和升级DM 服务器
  • 数据库结构设计
  • 监控和优化数据库的性能
  • 计划和实施备份与故障恢复
2. 数据库安全员(SSO)
  • 数据库安全员用于限制和监控数据库管理员的行为。

  • SSO的主要职责是制定并应用安全策略,强化系统安全机制。

  • 数据库安全员不能对用户数据进行增、删、改、查,也不能执行普通的DDL操作如创建表、视图等。

3. 数据库审计员(AUDITOR)

数据库审计员用于限制和监控数据库管理员的行为

  • AUDITOR的主要职责:
    创建和删除数据库审计员,设置/取消对数据库对象和操作的审计设置,查看和分析审计记录等。
4. 数据库对象操作员(DBO)

数据库对象操作员是“四权分立”新增加的一类用户

DBO可以创建数据库对象,并对自己拥有的数据库对象(表、视图、存储过程、序列、包、外部链接等)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。

(2)创建用户

创建用户的具体语法为,但一般常用: create user <用户名> identified <身份验证模式>

create user <用户名> identified <身份验证模式> 
[PASSWORD_POLICY<口令策略>]  [<锁定子句>] [<存储加密密钥>] [<空间限制子句>]
[<只读标志>] [<资源限制子句>] [<允许IP子句>] [<禁止IP子句>] [<允许时间子句>]
[<禁止时间子句>] [<tablespace子句>]
  • <用户名>指明要创建的用户名称,用户名称最大长度128字节;
  • <身份验证模式> ::= <数据库身份验证模式> | <外部身份验证模式> <数据库身份验证模式>= BY<口令>
    <外部身份验证模式> = EXTERNALLY
  • <口令策略> ::= 口令策略项的任意组合;
  • <锁定子句> := ACCOUNT LOCK | ACCOUNT UNLOCK
  • <存储加密密钥>::= ENCRYPT BY<口令>
  • <空间限制子句>::= DISKSPACE LIMIT <空间大小>| DISKSPACE UNLIMITED
  • <只读标志>::= READ ONLY | NOT READONLY
  • <资源限制子句>::= LIMIT<资源设置项>{<资源设置项>}
  • •<资源设置项>::= SESSION_PER_USER<参数设置> | CONNECT_IDLE_TIME<参数设置> |
    CONNECT_TIME<参数设置> | CPU_PER_CALL<参数设置> |CPU_PER_SESSION <参数
    设置> | MEM_SPACE <参数设置> | READ_PER_CALL<参数设置> |
    READ_PER_SESSION<参数设置> | FAILED_LOGIN_ATTEMPS<参数设置> |
    PASSWORD_LIFE_TIME<参数设置> | PASSWORD_REUSE_TIME<参数设置> |
    PASSWORD_REUSE_MAX<参数设置> | PASSWORD_LOCK_TIME<参数设置>PASSWORD_GRACE_TIME<参数设置>
  • <参数设置>::=<参数值> | UNLIMITED
  • <允许IP子句>:= ALLOW_IP <IP项> {<IP项>斗}
  • <禁止IP子句>:= NOT_ALLOW_IP <IP项>{<IP项>}
  • <IP项>::=<具体P>|<网段>
  • <允许时间子句>::= ALLOW_DATETIME<时间项>{,<时间项>斗}
  • <禁止时间子句>::=NOT_ALLOW_DATETIME<时间项>{<时间项>}
  • <时间项>::=<具体时间段>│<规则时间段>
  • <具体时间段>::=<具体日期><具体时间>TO<具体日期><具体时间>
  • <规则时间段>::=<规则时间标志><具体时间>TO<规则时间标志><具体时间>
  • <规则时间标志>::= MON | TUE | WED|THURS | FRI | SAT | SUN
  • <TABLESPACE子句>::=DEFAULTTABLESPACE<表空间名>
    在这里插入图片描述
1. 创建用户
create user <用户名> identified <身份验证模式>

注意:

  1. 用户名在服务器中必须唯一
  2. 如果没有指定用户默认表空间,则系统指定MAIN表空间为用户的默认表空间
  3. 如果没有指定用户默认索引表空间,则HUGE表的索引缺省存储在用户的默认表空间中,普通表的索引缺省存储在表的聚集索引所在的表空间中。临时表的索引永远在TEMP表空间。
  4. 系统预先设置了三个用户,分别为SYSDBA、SYSAUDITOR和SYSSSO,其中SYSDBA具备DBA角色,SYSAUDITOR具备DB_AUDIT_ADMIN角色,而SYSSSO具备DB_POLICY_ADMIN系统角色。
2. 举例:
  1. 创建user0用户,口令为passworduser0.
    由于这个例子的口令中要求小写字母,所以口令要加双引号,如果不加双引号,口令自动转换为大写。
create user user0 identified by "passworduser0";

select * from dba_users;

在这里插入图片描述
在这里插入图片描述
6. 创建user1用户,口令为passworduser1,会话超时为3分钟,默认表空间为example
注意,表空间子句放在最后面。口令在库中实际上是大
写的。如果确实需要使用小写或大小写混合密码,则密码一定要加英文双引号。

    1. 新建表空间为example
      在这里插入图片描述
    1. 填写表空间信息
      在这里插入图片描述
    1. 可以看到表空间那显示了新建的表空间example
      在这里插入图片描述
  • 执行sql语句
create user user0 identified by "passworduser0";

select * from dba_users;

注意:当你写了多条语句,但只想执行其中一条语句时,需要选中想执行的那条语句,然后点击绿色的执行按钮,千万不要直接点击绿色的执行按钮,会将当前查询窗口中的所有语句都执行!!!
在这里插入图片描述
在这里插入图片描述

(3)修改用户
  • 每个用户均可修改自身的口令, SYSDBA用户可强制修改非系统预设用户的口令(在数据库验证方式下)。
  • 只有具备ALTER USER权限的用户才能修改其身份验证模式、系统角色及资源限制项。
  • 不论dm.ini的DDL_AUTO_COMMIT设置为自动提交还是非自动提交,ALTER USER操作都会被自动提交。
  • 系统预设用户不能修改其系统角色和资源限制项。
1. 语法
ALTER USER <用户名> 
[IDENTIFIED<身份验证模式>] [PASSWORD_POLICY <口令策略>] [<锁定子句>]
[<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许IP子句>]
[<禁止IP子句>][<允许时间子句>][<禁止时间子句>][<TABLESPACE子句>]
[<INDEX_TABLESPACE子句>] [<SCHEMA子句>]……;
2. 举例
  1. 将DMHR用户的密码修改成DMHR12345
alter user dmhr identified by DMHR12345;

但是一般不需要修改。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐