精华内容
下载资源
问答
  • 数据库安全与保密

    千次阅读 2019-04-01 17:19:38
    数据库安全与保密 随着计算机科学技术的发展与普及, 特别是计算机在国民经济各重要部门的广泛应用 计算机安全已是当前信息社会非常关注的突出问题 而数据库系统 担负着存储和管理上述数据信息的任务。因而 ...

    数据库安全与保密

    随着计算机科学技术的发展与普及,
    特别是计算机在国民经济各重要部门的广泛应用
    计算机安全已是当前信息社会非常关注的突出问题
    而数据库系统
    担负着存储和管理上述数据信息的任务。因而
    如何保证和加强其安全性和保密性
    已成为目前迫切需要解决的热门课题。

    一、 数据库安全与保密概述
    数据库系统
    一般可以理解成两部分一部分是数据库
    按一定的方式存取数据另一部分是数据库管理系统(DBMS)
    为用户及应用程序提供数据访问
    并具有对数据库进行管理、维护等多种功能。
    数据库系统安全
    包含两层含义

    第一层是指系统运行安全
    它包括
    法律、政策的保护
    如用户是否有合法权利
    政策是否允许等
    物理控制安全
    如机房加锁等
    硬件运行安全
    操作系统安全
    如数据文件是否保护等
    灾害、故障恢复
    死锁的避免和解除
    电磁信息泄漏防止。

    第二层是指系统信息安全
    它包括
    用户口令字鉴别
    用户存取权限控制
    数据存取权限、方式控制
    审计跟踪
    数据加密。

    二、 数据库基本安全架构
    数据库系统信息安全性依赖于两个层次一层是数据库管理系统本身提供的用户名/口令字识别、视图、使用权限控制、审计等管理措施
    大型数据库管理系统Oracle、Sybase、Ingress等均有此功能另一层就是靠应用程序设置的控制管理
    如使用较普遍的Foxbase、Forpro等。作为数据库用户
    最关心自身数据资料的安全
    特别是用户的查询权限问题。对此
    目前一些大型数据库管理系统(如Oracle、Sybase等产品)提供了以下几种主要手段。
    ⒈ 用户分类
    不同类型的用户授予不同的数据管理权限。一般将权限分为三类数据库登录权限类、资源管理权限类和数据库管理员权限类。
    有了数据库登录权限的用户才能进入数据库管理系统
    才能使用数据库管理系统所提供的各类工具和实用程序。同时
    数据库客体的主人可以授予这类用户以数据查询、建立视图等权限。这类用户只能查阅部分数据库信息
    不能改动数据库中的任何数据。
    具有资源管理权限的用户
    除了拥有上一类的用户权限外
    还有创建数据库表、索引等数据库客体的权限
    可以在权限允许的范围内修改、查询数据库
    还能将自己拥有的权限授予其他用户
    可以申请审计。
    具有数据库管理员权限的用户将具有数据库管理的一切权限
    包括访问任何用户的任何数据
    授予(或回收)用户的各种权限
    创建各种数据库客体
    完成数据库的整库备份、装入重组以及进行全系统的审计等工作。这类用户的工作是谨慎而带全局性的工作
    只有极少数用户属于这种类型。
    ⒉ 数据分类
    同一类权限的用户
    对数据库中数据管理和使用的范围又可能是不同的。为此
    DBMS提供了将数据分类的功能
    即建立视图。管理员把某用户可查询的数据逻辑上归并起来
    简称一个或多个视图
    并赋予名称
    在把该视图的查询权限授予该用户(也可以授予多个用户)。这种数据分类可以进行得很细
    其最小粒度是数据库二维表中一个交叉的元素。

    ⒊ 审计功能
    大型DBMS提供的审计功能是一个十分重要的安全措施
    它用来监视各用户对数据库施加的动作。有两种方式的审计
    即用户审计和系统审计。用户审计时
    DBMS的审计系统记下所有对自己表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息。这些信息一般都被记录在数据字典(系统表)之中
    利用这些信息用户可以进行审计分析。系统审计由系统管理员进行
    其审计内容主要是系统一级命令以及数据库客体的使用情况。

    三、 数据库加密
    一般而言
    数据库系统提供的上述基本安全技术能够满足一般的数据库应用
    但对于一些重要部门或敏感领域的应用
    仅靠上述这些措施是难以完全保证数据的安全性
    某些用户尤其是一些内部用户仍可能非法获取用户名、口令字
    或利用其他方法越权使用数据库
    甚至可以直接打开数据库文件来窃取或篡改信息。因此
    有必要对数据库中存储的重要数据进行加密处理
    以实现数据存储的安全保护。
    ⒈ 数据库密码系统的基本流程
    数据加密
    就是将明文数据经过一定的交换(一般为变序和代昀)变成密文数据。
    数据脱密是加密的逆过程
    即将密文数据转变成可见的明文数据。
    一个密码系统包含明文集合、密文集合、密钥集合和算法
    其中密钥和算法构成了密码系统的基本单元。算法是一些公式、法则或程序
    规定明文与密文之间的变换方法
    密钥可以看作算法中的参数。
    数据库密码系统要求将明文数据加密成密文数据
    数据库中存储密文数据
    查询时将密文数据取出脱密得到明文信息。
    ⒉ 数据库加密的特点
    较之传统的数据加密技术
    数据库密码系统有其自身的要求和特点。传统的加密以报文为单位
    加脱密都是从头至尾顺序进行。数据库数据的使用方法决定了它不可能以整个数据库文件为单位进行加密。当符合检索条件的记录被检索出来后
    就必须对该记录迅速脱密。然而该记录是数据库文件中随机的一段
    无法从中间开始脱密
    除非从头到尾进行一次脱密
    然后再去查找相应的这个记录
    显然这是不合适的。必须解决随机地从数据库文件中某一段数据开始脱密的问题。
    ⑴ 数据库密码系统应采用公开密钥
    传统的密码系统中
    密钥是秘密的
    知道的人越少越好。一旦获取了密钥和密码体制就能攻破密码
    解开密文。而数据库数据是共享的
    有权限的用户随时需要知道密钥来查询数据。因此
    数据库密码系统宜采用公开密钥的加密方法。设想数据库密码系统的加密算法是保密的
    而且具有相当的强度
    那么利用密钥
    采用OS和DBMS层的工具
    也无法得到数据明文。
    ⑵ 多级密钥结构
    数据库关系运算中参与运算的最小单位是字段
    查询路径依次是库名、表名、记录名和字段名。因此
    字段是最小的加密单位。也就是说当查得一个数据后
    该数据所在的库名、表名、记录名、字段名都应是知道的。对应的库名、表名、记录名、字段名都应该具有自己的子密钥
    这些子密钥组成了一个能够随时加/脱密的公开密钥。
    可以设计一个数据库
    其中存放有关数据库名、表名、字段名的子密钥
    系统启动后将这些子密钥读入内存供数据库用户使用。与记录相对应的子密钥
    一般的方法应是在该记录中增加一条子密钥数据字段。
    ⑶ 加密机制
    有些公开密钥体制的密码
    如RSA密码
    其加密密钥是公开的
    算法也是公开的
    但是其算法是个人一套
    而作为数据库密码的加密算法不可能因人而异
    因为寻找这种算法有其自身的困难和局限性
    机器中也不可能存放很多种算法
    因此这类典型的公开密钥的加密体制也不适合于数据库加密。数据库加/脱密密钥应该是相同、公开的
    而加密算法应该是绝对保密的。
    数据库公开密钥加密机制应是一个二元函数
    密文=F(密钥
    明文)
    当加密算法F确定之后
    只要给出密钥和待加密的明文
    即可得到相应的密文。脱密过程即是加密过程的逆过程
    明文=F-1(密钥
    密文)
    由此可知
    数据库密码的加密机制应是既可加密又可脱密的可逆过程。
    ⑷ 加密算法
    加密算法是数据加密的核心
    一个好的加密算法产生的密文应该频率平衡
    随机无重码规律
    周期很长而又不可能产生重复现象。窃密者很难通过对密文频率、重码等特征的分析获得成功。同时
    算法必须适应数据库系统的特性
    加/脱密响应迅速。
    著名的MH背包算法就是一种适合数据库加密的算法。它的基本思想是有一个函数F
    使X=F(K,Y)
    在这里X相当于公开密钥向量
    Y相当于明文。在算法F不公开的情况下
    若已知K和X
    要还原出Y来
    穷尽次数为2n次。如果向量的分量n较大时
    用穷尽的方法来还原将是十分困难的。
    ⒊ 数据库加密的范围
    数据加密通过对明文进行复杂的加密操作
    以达到无法发现明文和密文之间、密文和密钥之间的内在关系
    也就是说经过加密的数据经得起来自OS和DBMS的攻击。另一方面
    DBMS要完成对数据库文件的管理和使用
    必须具有能够识别部分数据的条件。据此
    只能对数据库中数据进行部分加密。
    ⑴ 索引字段不能加密
    为了达到迅速查询的目的
    数据库文件需要建立一些索引。不论是字典式的单词索引、B树索引或HASH函数索引等
    它们的建立和应用必须是明文状态
    否则将失去索引的作用。有的DBMS中可以建立簌聚索引
    这类索引也需要在明文状态下建立和维护使用。
    ⑵ 关系运算的比较字段不能加密
    DBMS要组织和完成关系运算
    参加并、差、积、商、投影、选择和连接等操作的数据一般都要经过条件筛选
    这种"条件"选择项必须是明文
    否则DBMS将无法进行比较筛选。例如
    要求检索工资在1000元以上的职工人员名单
    "工资"字段中的数据若加密
    SQL语句就无法辨认比较。
    ⑶ 表间的连接码字段不能加密
    数据模型规范化以后
    数据库表之间存在着密切的联系
    这种相关性往往是通过"外部编码"联系的
    这些编码若加密就无法进行表与表之间的连接运算。
    ⒋ 数据库加密对数据库管理系统原有功能的影响
    目前DBMS的功能比较完备
    特别象Oracle、Sybase这些采用Client/Server结构的数据库管理系统
    具有数据库管理和应用开发等工具。然而
    数据库数据加密以后
    DBMS的一些功能将无法使用。
    ⑴ 无法实现对数据制约因素的定义
    Sybase数据库系统的规则定义了数据之间的制约因素。数据一旦加密
    DBMS将无法实现这一功能
    而且
    值域的定义也无法进行。
    值得注意的是
    数据库中的每个字段的类型、长度都有具体的限定。数据加密时
    数值类型的数据只能在数值范围内加密
    日期和字符类型的数据也都只能在各自的类型范围内加密
    密文长度也不能超过字段限定的长度
    否则DBMS将无法接受这些加密过的数据。
    ⑵ 密文数据的排序、分组和分类
    Select语句中的Group by、Order by、Having子句分别完成分组、排序、分类等操作。这些子句的操作对象如果是加密数据
    那么脱密后的明文数据将失去原语句的分组、排序、分类作用
    显然这不是用户所需要的。
    ⑶ SQL语言中的内部函数将对加密数据失去作用
    DBMS对各种类型数据均提供了一些内部函数
    这些函数不能直接作用于加密数据。
    ⑷ DBMS的一些应用开发工具的使用受到限制
    DBMS的一些应用开发工具不能直接对加密数据进行操作
    因而它们的使用会受到限制。
    在数据库安全和加密技术的研究方面
    我们只是作了一些尝试性的工作
    许多细节有待于进一步深入。通过研究
    我们认识到数据库安全与保密这一领域研究的重要性和迫切性。目前的DBMS对数据库的加密问题基本都没有经过仔细考虑
    如果在DBMS层考虑这一问题
    那么数据库加密将会出现新的格局。

    展开全文
  • 数据库安全管理

    千次阅读 2018-09-01 10:35:09
    数据库安全控制策略概述 + 2.用户管理 + 3.资源限制与口令管理 + 4.权限管理 + 5.角色管理 + 6.审计   1.数据库安全控制策略概述 安全性是评估一个数据库的重要指标,Oracle数据库从3个层次上采取安全...

    目录

    +  1.数据库安全控制策略概述

    +  2.用户管理

    +  3.资源限制与口令管理

    +  4.权限管理

    +  5.角色管理

    +  6.审计

     

    1.数据库安全控制策略概述

    安全性是评估一个数据库的重要指标,Oracle数据库从3个层次上采取安全控制策略:

    • 系统安全性。在系统级别上控制数据库的存取和使用机制,包括有效的用户名与口令、是否可以连接数据库、用户可以进行哪些系统操作等;
    • 数据安全性。在数据库模式对象级别上控制数据库的存取和使用机制。用户要对某个模式对象进行操作,必须要有操作的权限;
    • 网络安全性。Oracle通过分发Wallet、数字证书、SSL安全套接字和数据密钥等办法来保证数据库的网络传输安全性。

      数据库的安全可以从以下几个方面进行管理:

    • 用户账户管理
    • 用户身份认证方式管理。Oracle提供多种级别的数据库用户身份认证方式,包括系统、数据库、网络3种类型的身份认证方式
    • 权限和角色管理。通过管理权限和角色,限制用户对数据库的访问和操作
    • 数据加密管理。通过数据加密来保证网络传输的安全性
    • 表空间设置和配额。通过设置用户的存储表空间、临时表空间以及用户在表空间上使用的配额,可以有效控制用户对数据库存储空间的使用
    • 用户资源限制。通过概要文件设置,可以限制用户对数据库资源的使用

    数据库审计。监视和记录数据库中的活动,包括审计所有的SQL语句、审计SQL权限、审计模式对象以及审计网络活动等。

    接下来将对数据库安全管理方法进行一 一讨论。

     2.用户管理

    用户是数据库的使用者和管理者,Oracle通过设置用户及安全属性来控制用户对数据库的访问。Oracle的用户分两类,一类是创建数据库时系统预定义的用户,一类是根据应用由DBA创建的用户。

    2.1 预定义用户

    在oracle创建时创建的用户,我们称为预定义用户,预定义用户根据作用不同分为3类:

     

    • 管理员用户:包括SYS,SYSTEM,SYSMAN,DBSNMP等。SYS是数据库中拥有最高权限的管理员,可以启动、关闭、修改数据库,拥有数据字典;SYSTEM是一个辅助的数据库管理员,不能启动和关闭数据库,但是可以进行一些管理工作,如创建和删除用户;SYSMAN是OEM的管理员,可以对OEM进行配置和管理;DBSNMP用户是OEM代理,用来监视数据库的。以上这些用户都不能删除。
    • 示例方案用户:在安装Oracle或使用odbc创建数据库时,如果选择了”示例方案”,会创建一些用户,在这些用户对应的schema中,有产生一些数据库应用案例。这些用户包括:BI、HR、OE、PM、IX、SH等。默认情况下,这些用户均为锁定状态,口令过期。
    • 内置用户:有一些Oracle特性或Oracle组件需要自己单独的模式,因此为他们创建了一些内置用户。如APEX_PUBLIC_USER、DIP等。默认情况下,这些用户均为锁定状态,口令过期。

    此外还有2个特殊的用户SCOTT和PUBLIC,SCOTT是一个用于测试网络连接的用户,PUBLIC实际是一个用户组,数据库中任何用户都属于该用户组,如果要为数据库中的全部用户授予某种权限,只需要对PUBLIC授权即可。

    2.2 用户属性

    在创建用户时,必须使用安全属性对用户进行限制,用户的安全属性主要包括:

    • 用户名:在同一个数据库中,用户名是唯一的,并且不能与角色名相同;
    • 用户身份认证:Oracle采用多种方式进行身份认证,如数据库认证、操作系统认证、网络认证等;
    • 默认表空间:用户创建数据库对象时,如果没有显式指明存储在哪个表空间中,系统会自动将该数据库对象存储在当前用户的默认表空间,在Oracle 11g中,如果没有为用户指定默认表空间,则系统将数据库的默认表空间作为用户的默认表空间;
    • 临时表空间:临时表空间分配与默认表空间相似,如果不显式指定,系统会将数据库的临时表空间作为用户的临时表空间;
    • 表空间配额:表空间配额限制用户在永久表空间中可以使用的存储空间的大小,默认新建用户在表空间都没有配额,可以为每个用户在表空间上指定配额,也可授予用户UMLIMITED TABLESPACE系统权限,使用户在表空间的配额上不受限制。不需要分配临时表空间的配额;
    • 概要文件:每个用户必须具有一个概要文件,从会话级和调用级两个层次限制用户对数据库系统资源的使用,同时设置用户的口令管理策略。如果没有为用户指定概要文件,Oracle将自动为用户指定DEFAULT概要文件;
    • 设置用户的默认角色
    • 账户状态:创建用户时,可以设定用户的初始状态,包括口令是否过期和账户是否锁定等。

    可以通过数据字典dba_users查询各个用户的属性(这里只截取了前面几列):

    复制代码

    SQL> select * from dba_users;                                                                                                           
                                                                                                                                            
    USERNAME        USER_ID PASSWORD   ACCOUNT_STATUS    LOCK_DATE   EXPIRY_DATE DEFAULT_TABLESPACE  TEMPORARY_TABLESPACE   CREATED         
    ------------ ---------- ---------- ----------------- ----------- ----------- ------------------- ---------------------- -----------     
    SCOTT                84            OPEN                          2017/8/20 0 USERS               TEMP                   2009/8/15 0     
    LIJIAMAN             91            OPEN                          2017/10/31  USERS               TEMP                   2017/2/25 1     
    ORACLE_OCM           21            EXPIRED & LOCKED  2009/8/15 0 2009/8/15 0 USERS               TEMP                   2009/8/15 0     
    XS$NULL      2147483638            EXPIRED & LOCKED  2009/8/15 0 2009/8/15 0 USERS               TEMP                   2009/8/15 0

    复制代码

    2.3 创建用户

    创建用户语法如下:

    复制代码

    CREATE USER user_name  IDENTIFIED
    [BY password] |
    [EXTERNALLY [AS ‘certificate_DN’ | ‘kerberos_principal_name'] ] |
    [GLOBALLY [AS 'directory_DN'] ]
    [DEFAULT TABLESPACE tablespace_name]
    [TEMPORARY TABLESPACE tablespace_name | tablespace_group_name]
    [QUOTA  n K | M | UNLIMITED ON tablespace_name ]
    [PROFILE profile_name]
    [PASSWORD EXPIRE]
    [ACCOUNT LOCK | UNLOCK];

    复制代码

    其中:

    -user_name:新创建的用户的名称;

    -IDENTIFIED:指明用户认证方式;

    -BY password:采用数据库身份认证,password为用户密码;

    -EXTERNALLY:指定用户采用外部认证,其中:①AS ‘certificate_DN’指定用户采用ssl外部身份认证;②AS ‘kerberos_principal_name’指定用户采用kerberos外部身份认证;

    -GLOBALLY AS ‘directory_DN’:指定用户采用全局身份认证;

    -DEFAULT TABLESPACE tablespace_name:设置用户的默认表空间;

    -TEMPORARY TABLESPACE tablespace_name | tablespace_group_name:设置用户临时表空间/表空间组;

    -QUOTA n K|M|UNLIMITED ON tablespace_name:指定用户在特定表空间上的配额;

    -PROFILE profile_name:为用户指定概要文件;

    -PASSWORD EXPIRE:指定用户密码到期,用户首次登陆时系统会要求改密码;

    -ACCOUNT LOCK|UNLOCK:指定用户为锁定/非锁定状态,默认不锁定。

    2.4 修改用户

    修改用户采用ALTER实现,语句与CREATE USER基本相同,唯一不同的是多了DEFAULT ROLE选项,用于指定用户的默认角色:

    ALTER USER user_name  
    ...
    [DEFAULT ROLE [role_list] | [ALL [EXCEPT role_list]] | NONE ]
    ...
    ;
    其中: 

    -role_list:指定角色列表;

    -ALL:指定全部角色;

    -EXCEPT role_list:除了role_list指定的角色之外的角色;

    -NONE:不指定角色 .

    2.5 锁定与解锁用户

    当用户被锁定后,就不能登录数据库了,但是用户的所有数据库对象仍然可以继续使用,当用户解锁后,用户就可以正常连接到数据库。

    在Oracle中,当账户不再使用时,就可以将其锁定。通常,对于不用的账户,可以进行锁定,而不是删除。

    例子,锁定与解锁scott用户:

    复制代码

    /*使用SYS锁定SCOTT账户,锁定之后无法在登录*/
    SQL> show user;
    USER 为 "SYS"
    SQL> ALTER USER SCOTT ACCOUNT LOCK;
    
    用户已更改。
    
    SQL> conn scott/tiger
    ERROR:
    ORA-28000: the account is locked
    
    
    警告: 您不再连接到 ORACLE。
    
    
    /*解锁SCOTT账户,解锁后登录到数据库*/
    SQL> conn sys as sysdba
    输入口令:
    已连接。
    SQL> ALTER USER SCOTT ACCOUNT UNLOCK;
    
    用户已更改。
    
    SQL> conn scott/tiger;
    已连接。

    复制代码

    2.6 删除用户

    使用drop user删除用户,基本语法为:

    DROP USER user_name [CASCADE];

    如果用户拥有数据库对象,则必须使用CASCADE选项,Oracle先删除用户的数据库对象,再删除该用户。

    2.7 查询用户信息

    在Oracle中,包含用户信息的数据字典如下:

    视图名称 说明
    DBA_USERS 包含数据库的所有用户的详细信息(15项)
    ALL_USERS 包含数据库所有用户的用户名、用户ID和用户创建时间(3项)
    USER_USERS 包含当前用户的详细信息(10项)
    DBA_TS_QUOTAS 包含所有用户的表空间配额信息
    USER_TS_QUOTAS 包含当前用户的表空间配额信息
    V$SESSION 包含用户会话信息
    V$SESSTAT 包含用户会话统计信息

    3.资源限制与口令管理

    在数据库中,对用户的资源限制与用户口令管理是通过数据库概要文件(PROFILE)实现的,每个数据库用户必须具有一个概要文件,通常DBA将用户分为几种类型,为每种类型的用户单独创建一个概要文件。概要文件不是一个具体的文件,而是存储在SYS模式的几个表中的信息的集合。

    3.1 资源限制

    概要文件通过一系列资源管理参数,从会话级和调用级两个级别对用户使用资源进行限制。会话资源限制是对用户在一个会话过程中所能使用的资源进行限制,调用资源限制是对一条SQL语句在执行过程中所能使用的资源总量进行限制。资源限制的参数如下:

    • CPU使用时间:在一个会话或调用过程中使用CPU的总量;
    • 逻辑读:在一个会话或一个调用过程中读取物理磁盘和逻辑内存数据块的总量;
    • 每个用户的并发会话数;
    • 用户连接数据库的最长时间;

    下面是scott用户的资源限制信息:

    resource

    3.2 口令管理

    oracle概要文件用于数据库口令管理的主要参数如下:

    • FAILED_LOGIN_ATTEMPTS:限制用户失败次数,一旦达到失败次数,账户锁定;
    • PASSWORD_LOCK_TIME:用户登录失败后,账户锁定的时间长度;
    • PASSWORD_LIFE_TIME:用户口令的有效天数,达到设定天数后,口令过期,需要重新设置新的口令;

    下图是scott用户的口令管理参数设置信息:

    passwordmanager

    3.3 查询概要文件信息

    在Oracle 11g中,包含概要信息的数据字典如下:

    视图名称 说明
    DBA_USERS 包含数据库中所有用户属性信息,包括使用的概要文件(profile)
    DBA_PROFILES 包含数据库中所有的概要文件及其资源设置、口令管理设置等信息
    USER_PASSWORD_LIMITS 包含当前用户的概要文件的口令限制参数设置信息
    USER_RESOURCE_LIMITS 包含当前用户的概要文件的资源限制参数设置信息
    RESOURCE_COST 每个会话使用资源的统计信息


    4.权限管理

    在Oracle数据库中,用户权限主要分为系统权限与对象权限两类。系统权限是指在数据库基本执行某些操作的权限,或针对某一类对象进行操作的权限,对象权限主要是针对数据库对象执行某些操作的权限,如对表的增删(删除数据)查改等。

    4.1 系统权限

    (4.1.1)系统权限概述

    在Oracle 11g中,一共有200多项系统权限,可通过数据字典system_privilege_map获得所有的系统权限。

    复制代码

    SQL> select * from system_privilege_map;                      
                                                                  
     PRIVILEGE NAME                                       PROPERTY
    ---------- ---------------------------------------- ----------
            -3 ALTER SYSTEM                                      0
            -4 AUDIT SYSTEM                                      0
            -5 CREATE SESSION                                    0
            -6 ALTER SESSION                                     0
           ...          ...                                    ...
    208 rows selected

    复制代码

    (4.1.2)系统权限的授予

    授予用户系统权限的SQL语法为:

    GRANT system_privilege_list | [ALL PRIVILEGES]
    
    TO user_name_list | role_list | PUBLIC [WITH ADMIN OPTION];

    其中:

    -system_privilege_list:系统权限列表,以逗号分隔;

    -ALL PRIVILEGES:所有系统权限;

    -user_name_list:用户列表,以逗号分隔;

    -role_list:角色列表,以逗号分隔;

    -PUBLIC:给数据库中所有用户授权;

    -WITH ADMIN OPTION:允许系统权限接收者再将权限授予其它用户

    在授予用户系统权限时,需要注意:

    • 只有DBA用户才有alter database;
    • 应用开发者一般需要拥有create table、create view、create index等系统权限;
    • 普通用户一般只需具有create session权限
    • 在授权用户时带有with admin option子句时,用户可以将获得的权限再授予其它用户。

    (4.1.3)系统权限的回收

    回收用户系统权限的SQL语法如下:

    REVOKE system_privilege_list | [ALL PRIVILEGES]
    
    FROM user_name_list | role_list | PUBLIC

    回收用户系统权限需要注意以下3点:

    • 多个管理员授予同一个用户相同的权限,其中一个管理员回收其授予用户的系统权限,该用户将不再具有该系统权限;
    • 为了回收用户系统权限的传递性(授权时使用了with admin option),须先回收该系统权限,在重新授予用户该权限;
    • 如果一个用户的权限具有传递性,并且给其它用户授权,那么该用户系统权限被收回后,其它用户的系统权限并不会受影响;

    4.2 对象权限

    对象权限是指对某个特定模式对象的操作权限。数据库模式对象所有者拥有该对象的所有对象权限,对象权限的管理实际上是对象所有者对其他用户操作该对象的权限管理。在Oracle数据库中,不同类型的对象具有不同的对象权限,而有的对象并没有对象权限,只能通过系统权限进行管理,如簇、索引、触发器、数据库链接等。

    (1)对象权限的授予

    在Oracle数据库中,用户可以直接访问同名Schema下的数据库对象,如果需要访问其它Schema下的数据库对象,就需要具有相应的对象权限。对象权限授予的SQL语法为:

    GRANT object_privilege_list | ALL [PRIVILEGES] [ (column,...) ] 
    ON [schema.]object 
    TO user_name_list | role_list | PUBLIC [WITH GRANT OPTION];

    其中:

    -object_privilege_list:对象权限列表,以逗号分隔;

    -ALL PRIVILEGES:全部权限;

    -[schema.]object:待授权的对象;

    -user_name_list:用户列表,以逗号分隔;

    -role_list:角色列表,以逗号分隔;

    -PUBLIC:所有用户

    (2)对象权限的回收

    回收对象权限的SQL语法为:

    REVOKE object_privilege_list | ALL [PRIVILEGES]
    ON [schema.]object
    FROM user_name_list | role_list | PUBLIC [CASCADE CONSTRAINTS] | [FORCE];

    其中:

    -CASCADE CONSTRAINTS:当回收REFERENCE对象权限或回收ALL PRIVILEGES,删除利用REFERENCES对象权限创建的外键约束;

    -FORCE:当回收在表中被使用的用户自定义对象类型的EXECUTE权限时,必须指定FORCE关键字。

    回收对象权限需要注意以下3点:

    • 多个管理员授予同一个用户相同的对象权限,一个管理员将该对象权限回收后,该用户不再具有该对象权限;
    • 为了回收用户对象权限的传递性,须先回收该对象权限,再重新赋予给用户该对象权限;
    • 如果一个用户的对象权限具有传递性,并且已经给其它用户授权,那么该用户的对象权限被回收后,其它用户的对象权限也将被收回。(值得注意的是,这一条与系统权限传递性的回收不相同)。

    4.3 查询权限信息

    视图名称 说明
    DBA_SYS_PRIVS 包含所有用户角色获得的系统权限信息
    ALL_SYS_PRIVS 包含当前用户可见的全部用户角色获得的系统权限信息
    USER_SYS_PRIVS 当前用户获得的系统权限信息
    DBA_TAB_PRIVS 包含所有用户角色获得的对象权限信息
    ALL_TAB_PRIVS 包含当前用户可见的全部用户角色获得的对象权限信息
    USER_TAB_PRIVS 当前用户获得的对象权限信息
    DBA_COL_PRIVS 包含数据库中所有列对象的权限信息
    ALL_COL_PRIVS 包含当前用户可见的所有列对象的权限信息
    USER_COL_PRIVS 当前用户拥有的或授予其它用户的所有列对象的权限信息
    SESSION_PRIVS 当前会话可以使用的所有权限信息

    5.角色管理

    假如我们直接给每一个用户赋予权限,这将是一个巨大又麻烦的工作,同时也不方便DBA进行管理。通过采用角色,使得:

    • 权限管理更方便。将角色赋予多个用户,实现不同用户相同的授权。如果要修改这些用户的权限,只需修改角色即可;
    • 角色的权限可以激活和关闭。使得DBA可以方便的选择是否赋予用户某个角色;
    • 提高性能,使用角色减少了数据字典中授权记录的数量,通过关闭角色使得在语句执行过程中减少了权限的确认。

    image

                         图. 用户、角色、权限关系图

    由于个人接触的数据库用户较少,没有单独创建角色,故角色的创建、修改、删除、激活、禁用、授予、回收不再一一讲述,只要知道如何查询角色信息即可。

    在Oracle中,包含角色的数据字典如下:

    视图名称 说明
    DBA_ROLE_PRIVS 包含数据库中所有用户拥有的角色信息
    USER_ROLE_PRIVS 包含当前用户拥有的角色信息
    ROLE_ROLE_PRIVS 角色拥有的角色信息
    ROLE_SYS_PRIVS 角色拥有的系统权限信息
    ROLE_TAB_PRIVS 角色拥有的对象权限信息
    DBA_ROLES 当前数据库中所有角色及其描述信息
    SESSION_ROLES 当前会话所具有的角色信息
    展开全文
  • 数据库安全初探

    千次阅读 2016-01-06 17:48:32
    本文根据目前国内外数据库安全的发展现状和经验,结合亚马逊AWS[1]、阿里云、腾讯云、UCloud、华为云等国内外云服务厂商,和IBM、微软等IT巨头的云服务情况,从云数据库安全角度,介绍了云环境下数据库安全四种技术...
    



    本文根据目前国内外数据库安全的发展现状和经验,结合亚马逊AWS[1]、阿里云、腾讯云、UCloud、华为云等国内外云服务厂商,和IBM、微软等IT巨头的云服务情况,从云数据库安全角度,介绍了云环境下数据库安全四种技术路线与安全模型架构,和云数据库安全的关键技术,适合从事云安全、云计算、数据安全等相关人员和安全爱好者学习探讨。

    每个公司对私有云、公有云的定义都不一样,但是CIO们却在不断重演莎翁经典对白:“公有云还是私有云,这是个问题”,政府、企业、金融、公共事业等都在建设或者规划上云。引发这一问题的核心是:云环境的安全合规性问题,也就是云环境的法规遵从、云数据的安全如何保障、云环境风险管理。

    云数据(库)安全之技术路线

    从法规遵从和企业、个人敏感信息防护的角度,相比私有云环境和传统企业IT环境,公有云和混合云环境中的数据面临着前所未有的,来自开放环境和云运维服务环境的安全挑战。笔者认为抓住主要矛盾,围绕核心敏感数据,进行最彻底有效的加密保护,比较典型的敏感数据包括身份证号、姓名、住址、银行卡、信用卡号、社会保险号等等,以及企业的核心资产数据。在此观点下,笔者提出以加密保护为基础的技术路线:

    • 以敏感数据加密为基础
    • 以安全可靠、体系完善的密钥管理系统为核心
    • 以三权分立、敏感数据访问控制为主要手段
    • 辅助数据库防火墙、数据脱敏、审计等边界系统,规范和监控数据的访问行为

    云数据(库)安全之模型和架构

    实现以敏感数据加密为基础的技术路线,最关键的是“密钥由谁控制、在哪管理”;同时需要解决数据加密防护和密钥管理引起的对系统运行效率,系统部署和改造的代价,自动化运维的影响等一系列问题。对此,亚马逊AWS的解决方案中采用多种密钥管理模型:

    模型A:加密方法,密钥存储,密钥管理全部由用户控制,典型的是整个KMS[2](密钥管理系统)部署在用户的数据中心。
    模型B:与模型A中的加密方法是一样的,区别在于密钥的存储是在云的KMS而不是在用户端的数据中心。
    模型C:本模型提供了完整的服务器端加密,加密方法和密钥的管理对于用户是透明的。

    AWS云数据安全模型

    AWS云数据安全模型

      核心机制 安全性
    模型A 密钥的存储和管理完全掌握在用户手上,“云”无法获得密钥或对用户的数据进行加密、解密 安全性最好
    模型B KMS负责生成和存储密钥,负责进行加解密操作;但不负责密钥生命期的管理,访问控制,密钥轮转等 密钥的安全性由云的KMS保障
    模型C 完全是服务器端加密,对用户是透明的 数据的安全完全由云的安全性保证

    围绕三种安全模型,可以在多个层上实现数据加密防护—多层数据加密防护架构,具体如下:

    1、 磁盘加密:采用的是Block-Level加密技术,需要云存储卷采用Block存储机制,例如AWS的EBS[3],阿里云的ECS[4]等。这种加密最大的好处在于,它对操作系统是透明的。

    2、 文件加密:通过堆叠在其它文件系统之上(如 Ext2, Ext3, ReiserFS, JFS 等),为应用程序提供透明、动态、高效和安全的加密功能。典型的是用于加密指定的目录。需要关注的是这种加密方式可能会产生较大的性能损失。

    3、 数据库加密:(1)以亚马逊AWS的RDS[5]为例,典型的是使用DBMS[6]提供的数据库透明加密,自动的对数据库表空间数据进行加密,密钥管理也是由DBMS提供的API或组件实现,应用透明。由于RDS没有对外开放RDS用于存储数据的磁盘,因此前面提到的“透明”磁盘、文件加密技术无法在RDS上使用。(2)对于用户在云上自行部署使用的DBMS,可以使用第三方专业数据库加密厂商提供的产品,如安华金和的数据库保险箱DBCoffer,可提供应用透明的按列加密能力,独立的密钥管理、三权分立、静态数据掩码能力。

    4、 应用层加密:在数据到达数据库和RDS之前,甚至发送到云端之前,实时保护用户的敏感数据;这里关键需要提供良好的应用透明性,保证绝大多数应用无需改造。云用户(企业)没有必要信任云计算提供商以保护企业的数据安全。数据安全是由企业自己控制的。

    5、 密钥管理和加解密组件:作为数据加密保护的核心组件,KMS负责进行密钥生成、管理和销毁,并提供加解密能力;同时根据需要提供密钥的生命期管理、开放的API接口。

    综上,云用户(企业)可以根据自身的安全合规性需求,选择适合的云数据安全模型和相应的数据安全技术(产品),对敏感数据进行加密防护。

    多层云数据加密防护架构

    多层云数据加密防护架构

    云数据(库)安全之关键技术

    上文笔者提出了一套云环境下的“多层数据加密防护架构”。下面针对实现该安全防护架构与相关关键技术进行具体分析。需要说明的是,由于整盘加密和TDE[7]属于云服务商和数据库厂商的范围,不在本文中讨论。

    KMS密钥管理和加解密算法

    密钥管理包含了密钥的创建、存储、生命期管理、保护。密钥的安全性直接决定了加密数据的安全性。建议密钥独立存储,并采用根密钥保护,根密钥受硬件加密卡保护,或者被KMS服务的密码保护。

    密钥安全体系

    密钥安全体系

    KMS密钥管理通过用户的口令保护主密钥,口令正确主密钥解密;主密钥对密钥文件进行保护,只有主密钥成功解密后,密钥文件才能使用,最后通过密钥文件生成可用的密钥。

    加解密算法方面,除了必要的强加密算法(如AES256)和相关机构认证的硬件加密算法外,这里特别需要提出,为了实现应用的透明性,需要根据应用系统的需求提供专门的加密算法,如FPE[8],Tokenization,SSE[9]等。

    FPE加密算法,是一种格式保留的加密算法,主要面向身份证、银行卡号、信用卡号、社会保险号等具有数据特征的信息进行加密,该算法加密后的数据能够保留原有的数据格式,从而对应用的业务逻辑不会产生任何影响,保证了应用的透明性。

    Tokenization,是一种数据掩码算法。与FPE[8]类似,通过对数据的“扰乱”,并保留数据的原有格式,达到加密的效果,同时保证应用的透明性。

    FPE加密算法的效果

    FPE加密算法的效果

    数据库透明加密

    数据库透明加密是按列对数据进行加密的,针对指定的列,采用指定的加密算法和密钥、盐值等进行加密处理。加密后的数据以密文的形式存储在DBMS[7]的表空间中。

    只有经过授权的用户才能看到明文数据,并且授权也是按列进行的,这种方式具备很好的灵活性和安全性。非授权用户,将无法读取加密列(查询)和更改加密列的数据。

    权限管理上,数据库透明加密采用了分权的机制,实现了三权分立,有效制约了数据库管理员(DBA)这样的特权用户对数据的访问。同时这种保护又是透明的,不会对管理员的日常工作造成不便。

    最重要的是数据库透明加密应用透明,应用系统和外围维护工具无需改造,涵盖SQL语句透明、存储程序透明、开发接口透明、数据库对象透明、管理工具透明。

    数据库透明加密防护技术

    数据库透明加密防护技术

    优势:

    • 对应用系统和数据库管理工具透明
    • 对数据库帐户细粒度控制,包括DB用户,客户端IP,客户端MAC地址,应用程序或工具等
    • 对敏感数据访问细粒度审计

    限制:

    • 需要针对不同的数据库分别实现
    • 需要实现专门的密文索引技术和透明访问技术,以满足性能和应用透明性
    • 无法适用于RDS、用户在ECS上部署的DBMS实例

    应用层透明加密

    应用透明加密分为两种实现技术:JDBC[10]/ODBC[11]加密驱动,和云访问安全代理。其中最关键的是用于支撑应用透明的加密技术:FPE、Tokenization。

    1、JDBC/ODBC加密驱动

    应用层JDBC/ODBC加密驱动,可以通过在原有DBMS提供的JDBC/ODBC上,以Wrapper方式实现,部署时替换JDBC/ODBC加密驱动,实现对应用透明的数据加解密,实现数据在到达DBMS/RDS之前进行加密,和数据离开DBMS/RDS到达Application之后进行解密,最终保证多数应用系统无需改造;同时在JDBC/ODBC加密驱动层实现独立的权限控制,密钥的获取。
    对敏感数据,通过JDBC/ODBC加密驱动实现完整的敏感数据访问审计能力。

    JDBC/ODBC加密驱动技术

    JDBC/ODBC加密驱动技术

    优势:

    • 实现按字段加密,数据在到达DBMS/RDS之前就完成加密,安全性好
    • 实现对应用的透明性,只需更换JDBC驱动即可完成
    • 实现对数据库帐户细粒度控制,包括DB用户,客户端IP,客户端MAC地址,应用程序或工具等
    • 部分实现应用用户控制,包括应用帐号、应用客户端的IP等

    限制:

    • 对第三方数据工具(如PLSQL,TOAD等)无法实现透明,数据为密文
    • 对服务器端程序,如存储过程、驻留在DBMS主机的自动化脚本等,无法实现透明
    • 需要针对不同的数据库实现相应的JDBC/ODBC Wrapper

    2、云访问安全代理

    云访问安全安全代理(CASB),往往采用的是应用网关的方式,作为HTTP或HTTPS的反向代理服务网关,对HTTP页面中的敏感数据进行加密和Tokenization两种不同的保护方式。通过处理HTTP的请求和响应,实现面向字段的数据和上传内容的加密和解密,实现在数据发送到云端之前进行加密,密文数据离开云端到达客户端之前进行解密。

    云访问安全代理网关典型部署在用户数据中心侧,用户完全控制数据的加密密钥和加解密过程。可以采用任意的inline proxy方式进行部署。

    云访问安全代理网关可以提供细致的面向应用系统用户和组的访问控制能力,同时提供面向应用系统用户的细粒度访问审计能力。

    云访问安全代理技术

    云访问安全代理技术

    优势:

    • 实现按字段的加密,可以在数据到达云端之前就完成加密,安全性最好
    • 具有高安全性,能够提供面向应用用户的解密权限控制,有效防止DBA的高权限和SQL注入攻击行为
    • 最大限度满足合规性能力

    限制:

    • 对应用系统可能无法实现真正的应用透明,需要对应用进行部分改造
    • 对第三方数据工具(如PLSQL,TOAD等)无法实现透明,数据为密文
    • 对服务器端程序,如存储过程、驻留在DBMS主机的自动化脚本等,无法实现透明

    文件级透明加密防护

    文件级透明加密防护通过在云主机操作系统上部署专门的加解密agent,实现对专门的数据文件或卷(Volume)的加解密。对操作系统帐户具有权限控制能力。只有专门的DBMS系统帐户才有对文件或卷进行加解密。

    文件级透明加密防护技术

    文件级透明加密防护技术

    优势:

    • 对数据库系统(DBMS)和应用透明
    • 同时支持结构化和非结构化文件的加密
    • 有效控制操作系统用户的访问,满足通常的控制需求

    限制:

    • 无法提供细粒度的数据访问审计能力
    • 需要针对不同的操作系统平台提供专门的agent
    • 无法控制数据库帐户对敏感数据的访问

    数据自动脱敏

    随着云计算、弹性计算的广泛使用,会出现两种系统研发和测试的趋势:

    1)系统研发和测试在本地环境完成,然后部署在云端。

    2)系统研发和测试也在云端进行,充分利用云端的弹性计算资源,和方便简洁的云化部署能力。

    以上无论哪种方式,都面临将生产数据全部或部分转移到测试和研发环境中,出于合规性和安全性需求,转移的数据必须进行“脱敏”处理。

    数据自动脱敏技术能够对测试库中的数据、迁移过程中的数据、导出成文件的数据进行“脱敏”处理;并能保证数据关系一致性,例如分散在不同表中的相同身份证号数据脱敏后仍然是相同的。

    数据自动脱敏技术

    数据自动脱敏技术

    数据库防火墙

    数据库防火墙,是基于数据库协议分析与控制技术的数据库安全防护技术。基于主动防御机制,数据库防火墙实现了对数据库的访问行为控制、危险操作阻断、可疑行为审计。是集数据库IPS、IDS功能为一体的综合数据库安全防护技术。

    数据库防火墙技术

    数据库防火墙技术

    实施云数据(库)防护的6个步骤

    由于云环境、企业云应用系统、核心数据的复杂性,选择适合的云数据保护方案变得尤为重要。那么什么样的方案是适合的?笔者认为应该涵盖以下几个关键点:(1)满足安全需求和相关法规;(2)对各种危害来源进行有效防护;(3)可接受的部署和维护复杂性。

    因此,为了保护云端的数据,需要有计划、有步骤的实施云数据(库)安全防护,这里结合前面的架构和关键技术,提出以下实施云数据(库)防护的6个基本步骤:

    步骤1:分析并确定需要保护的关键数据
    在对云数据进行保护前,首先需要准确的分析哪些数据需要保护,和为什么要保护这些数据;评估和划分哪些数据需要放置在云端,从而确定哪些数据是关键的必须保护的数据,例如用户身份证号码、银行卡或信用卡号码、社保号码等。另一个需要关注的就是法规遵从性需求。

    步骤2:选择适合的技术方案和加密算法
    作为云数据防护是否能够成功实施的关键,企业需要在关键数据的安全性、保持云应用系统的功能可用性,和系统可维护性方面综合考虑,来确定适合企业需要的加密保护的技术方案。下面的两张图表对前面提到的加密防护的关键技术能够提供的防护效果,安全性和部署复杂性进行了对比,供读者参考。

    多层云数据加密防护效果分析

    多层云数据加密防护效果分析

    安全性和实施部署复杂性分析

    安全性和实施部署复杂性分析

    加密方法的选择也很重要,这里举个典型例子,在很多应用系统中会对银行卡号数据进行格式校验,如果数据不符合格式会造成应用系统无法接受“错误”的银行卡号数据,因此对银行卡号加密同时,还需要保留其格式特征,可供选择的加密算法包括FPE和Tokenization。而姓名等数据则可以采用AES256等更通用的加密算法。

    步骤3:保护好数据的加密密钥
    为了保护密文数据不会被非法窃取,避免云服务厂商和第三方维护人员访问到明文数据,最好的做法是将密文数据的密钥控制在云用户自己手中;读者可以参考前面的图1云数据安全模型和表1 安全模型对比。

    步骤4:实施必要的防数据泄漏措施
    虽然采取了必要的数据加密措施,但并不能彻底解决来自应用系统环境和云运维环境的安全威胁,典型的如来自云应用系统的SQL注入攻击、后门程序、利用数据库漏洞的攻击行为、第三方运维人员的误操作等。因此需要采用数据库防火墙这样的数据边界防护技术,利用其细粒度的访问控制、防攻击、防批量数据下载等特性,实现有效的防数据泄漏。

    步骤5:监控并审计数据的访问行为
    一方面,黑客攻击行为千变万化,另一方面,系统的复杂性带来的数据正常维护和管理行为往往也是不可预期的。因此,需要对重要数据的访问行为采取持续、及时的监控和审计,形成有效的风险报告提供给用户发现新的风险,帮助用户更好的进行数据保护。

    步骤6:利用自动脱敏防止测试环境数据泄漏
    除了云环境的数据防护,企业内部的测试环境也是一个重要的信息泄漏源,特别是需要“抽取”云端生产数据用于测试系统时;利用数据自动脱敏技术可以在有效的保护生产数据的同时,为测试环境提供可用的符合用户预期的测试数据。

    名词术语解释

    [1]AWS:本文主要指亚马逊的云计算服务
    [2] KMS:Key Managerment System,是一种基于软件或硬件加密卡技术的密钥管理系统,实现了密钥的生命期管理,提供丰富的加解密算法和接口
    [3] EBS:Elastic Block Store,本文主要指亚马逊的弹性块存储服务
    [4] ECS:Elastic Compute Service,本文指阿里的云服务器服务
    [5] RDS:Relational Database Service,本文主要是指阿里的云数据库服务
    [6] DBMS:Database Management System,数据库管理系统
    [7] TDE:Transparent Data Encryption,数据库透明加密,一种由数据库厂商提供的数据库加密技术
    [8] FPE:Format Preserving Encryption,是一种保留数据格式的加密算法,加密后的数据格式与明文数据的格式保持一致。
    [9] SSE:Searchable StrongEncryption,一种加密后数据可查询检索的加密算法,类似同态加密的结果
    [10] JDBC:Java Data Base Connectivity,一种用于连接多种关系型数据库的Java数据库连接
    [11]ODBC:Open Database Connectivity,开放数据库互连,是Microsoft提出的数据库访问接口标准

    展开全文
  • 数据库安全

    千次阅读 2018-11-17 13:22:34
    数据库安全性是指保护数据库以防止合法使用所造成的数据泄露、更改或破坏 。 系统安全保护措施是否有效是数据库系统主要的性能指标之一。 数据库安全性是指保护数据库以防止合法使用所造成的数据泄露、...
    • 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。
    • 系统安全保护措施是否有效是数据库系统主要的性能指标之一。
    • 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。
    • 系统安全保护措施是否有效是数据库系统主要的性能指标之一

     

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

    • 一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。
    • 数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。

                                 数据库中重要或敏感的数据被泄露

    n黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。

    n数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。

    n审计日志分析

                                  安全环境的脆弱性

    n数据库的安全性与计算机系统的安全性紧密联系

    l计算机硬件、操作系统、网络系统等的安全性

    n建立一套可信(Trusted)计算机系统的概念和标准


    安全标准简介

    v1985年美国国防部(DoD)正式颁布DoD可信计算机系统评估准则(简称TCSECDoD85

    v不同国家建立在TCSEC概念上的评估准则

    n欧洲的信息技术安全评估准则(ITSEC

    n加拿大的可信计算机产品评估准则(CTCPEC

    n美国的信息技术安全联邦标准(FC


    数据的安全性控制

    v非法使用数据库的情况

    n编写合法程序绕过数据库管理系统及其授权机制

    n直接或编写应用程序执行非授权操作

    n通过多次合法查询数据库从中推导出一些保密数据

     

     

    1.系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统

    2.数据库管理系统还要进行存取控制,只允许用户执行合法操作

    3.操作系统有自己的保护措施

    4.数据以密码形式存储到数据库中

     

                                                  存取控制流程

    n首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。

    n然后,在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。

    n还可以对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测

                                        数据库安全性控制的常用方法

    n用户标识和鉴定

    n存取控制

    n视图

    n审计

    n数据加密

    11.用户身份辨别

    .静态口令鉴别

    l静态口令一般由用户自己设定这些口令是静态不变的

    2.动态口令鉴别

    l口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法

    3.生物特征鉴别

    l通过生物特征进行认证的技术生物特征如指纹、虹膜和掌纹等

    4.智能卡鉴别

    l智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能

     

    2.存取控制

    v存取控制机制组成

    n定义用户权限,并将用户权限登记到数据字典中

    l用户对某一数据对象的操作权力称为权限

    lDBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则

    n合法权限检查

    l用户发出存取数据库操作请求

    lDBMS查找数据字典,进行合法权限检查

    v用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统


    展开全文
  • 以下( D)不属于实现数据库系统安全性的主要技术和方法。 A. 存取控制技术 B. 视图技术 C. 审计技术 D. 出入机房登记和加锁 2. SQL中的视图提高了数据库系统的( D)。 A. 完整性 B. 并发控制 C. ...
  • 数据库系统安全机制

    2019-10-02 14:38:25
    数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。近年来,对用户的认证与鉴别、存取控制、数据库加密及推理控制等安全机制的研究...
  • 第4章 数据库安全性 了解 计算机系统安全性问题 数据库安全性问题 威胁数据库安全性因素 掌握 TCSEC和CC标准的主要内容 C2级DBMS、B1级DBMS的主要特征DBMS提供的安全措施 用户身份鉴别、自主存取控制、强制存取...
  • 数据库安全审计系统

    千次阅读 2013-07-09 14:26:33
    数据库安全审计系统主要用于监视并记录对数据库服务器的各类操作行为,通过对网络数据的分析,实时地、智能地解析对数据库服务器的各种操作,并记入审计数据库中以便日后进行查询、分析、过滤,实现对目标数据库系统...
  • 第4章-数据库安全

    千次阅读 2020-05-06 21:20:21
    3、数据库安全性是指什么? 保护数据库,防止合法使用所造成的的数据泄露、更改或破坏。 4、对数据库安全性产生威胁的因素主要有哪几个方面? 1.非授权用户对数据库的恶意存取和破坏 数据库管理系统提供的安全措施...
  • 以下( )不属于实现数据库系统安全性的主要技术和方法. A. 存取控制技术 B. 视图技术 C. 审计技术 D. 出入机房登记和加锁 SQL中的视图提高了数据库系统的( ). A. 完整性 B. 并发控制 C. 隔离性 D. 安全性 SQL语言...
  • 数据库复习5——安全

    千次阅读 2015-06-13 20:21:50
    数据库复习 安全性 数据库安全性介绍如果说完整性是针对授权用户的数据库保护措施,那么安全性就是针对非授权用户的数据库保护措施
  • Access数据库安全设置技巧

    千次阅读 2010-03-06 10:37:00
    部分论坛新手们没警惕自己论坛数据库存在的危险,所以还是 决定以Dvbbs7.0为例,介绍一下如何保护好你的Access数据库 。闲话休说,请往下看:1、给你的Access数据库加上密码保护(其实Access数据库 的密码保护非常...
  • Oracle数据库安全管理的5个方面

    千次阅读 2018-06-28 17:31:09
    数据库安全控制策略概述安全性是评估一个数据库的重要指标,Oracle数据库从3个层次上采取安全控制策略:系统安全性。在系统级别上控制数据库的存取和使用机制,包括有效的用户名与口令、是否可以连接数据库、用户...
  • 数据库安全与保密

    万次阅读 2013-10-04 09:41:34
    随着计算机科学技术的发展与普及,特别是计算机在国民经济各重要...一、 数据库安全与保密概述 数据库系统,一般可以理解成两部分:一部分是数据库,按一定的方式存取数据;另一部分是数据库管理系统(DBMS),为用户及
  • MySQL数据库面试题(2020最新版)

    万次阅读 多人点赞 2020-03-10 17:20:40
    文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储...
  •  SQL Server数据库安全性管理 数据库的安全管理主要是对数据库用户的合法性和操作权限的管理。数据库用户(在至于引起混淆的情况下简称用户)是指具有合法身份的数据库使用者,角色是具有一定权限的用户组。SQL ...
  • SQL Server数据库安全规划全攻略

    千次阅读 2006-02-21 16:20:00
    SQL Server数据库安全规划全攻略 (转) 在改进SQL Server 7.0系列所实现的安全机制的过程中,M
  • 数据库

    千次阅读 2017-03-25 18:08:20
    关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性包括: 1、域完整性: 域完整性是保证数据库字段取值的合理性。包括限制类型(数据类型),格式(通过检查约束和规则),...
  • 在改进SQL Server 7.0系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库安全进行全面地管理。按照本文介绍的步骤,你可以为SQL ...
  • 【一】朋友公司有个重要的系统,由于业务的需求需要直接开放外网,这个安全隐患让信息中心的领导一直挂在心上。终于有一天公司的一个开发人员离职出去了,但是系统的一些账号密码并没有更新,然后这个开发人员就频繁...
  • 在改进SQL Server 7.0系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库安全进行全面地管理。按照本文介绍的步骤,你可以为SQL ...
  • 等保培训.05.应用和数据库安全测评

    千次阅读 2020-04-18 15:31:27
    查看其是否进行了正确的配置如果条件允许,需进行测试主要测评内容身份鉴别访问控制安全审计剩余信息保护通信完整性通信保密性抗抵赖软件容错资源控制数据完整性数据保密性备份和恢复结果整理和分析数据库安全测评...
  • 打造安全mdb数据库

    2006-06-08 14:57:00
    什么是mdb数据库呢?凡是有点制作网站经验的网络管理员都知道,目前使用“IIS+ASP+ACCESS”这套... mdb数据库是没有安全防范的,只要入侵者猜测或者扫描到mdb数据库的路径后就可以使用下载工具轻松将其下载到本地硬盘
  • 数据库MySQL详解

    万次阅读 多人点赞 2018-07-24 20:03:47
    什么是数据库管理系统 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库安全性和完整性。...
  • 数据库安全性主要通过用户、权限和角色进行管理。一 用户管理1 数据库用户账户要访问数据库,用户必须指定有效的数据库用户账户,而且还要根据该用户账户的要求成功通过验证,每个数据库用户都有一个唯一的数据库...
  • 什么是mdb数据库呢?凡是有点制作网站经验的网络管理员都知道,目前使用“IIS+ASP+ACCESS”这套... mdb数据库是没有安全防范的,只要入侵者猜测或者扫描到mdb数据库的路径后就可以使用下载工具轻松将其下载到本地硬盘,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,785
精华内容 49,114
关键字:

以下不属于数据库安全的是