精华内容
下载资源
问答
  • 数据安全是数据库安全性的核心要素,达梦数据库(以下简称达梦)从多维度、不同层面对用户数据实现立体式保护。纵向来看,登录用户的账户密码每次使用协商的密钥加密传输、 对用户数据库操作的每个动作进行严格的权限...

    数据安全是数据库安全性的核心要素,达梦数据库(以下简称达梦)从多维度、不同层面对用户数据实现立体式保护。纵向来看,登录用户的账户密码每次使用协商的密钥加密传输、 对用户数据库操作的每个动作进行严格的权限检查、数据落地的完整性校验和完备的TDE加密方案。横向来看,用户和用户之间是会话独立的、操作层面实现REDO、UNDO等恢复保护机制、落地数据提供双写文件等备份机制。

    鉴于达梦安全体系的复杂性,我们对其研究不能做到面面俱到。本文的分析基于达梦7.6版本,侧重讨论其加密体系,并在此基础上观察当前的加密体系存在的安全性风险,给出有效的解决方案。

    加密体系

    提起数据库加密,大家最先想到的可能就是TDE加密。TDE加密保护的是用户数据,理所当然是加密中的重中之重。除此之外,用户身份认证、通讯加密、多级密钥管理等也不可或缺。

    1、密钥管理

    达梦使用多级密钥管理方式保证数据库密钥的安全性。达梦安装时通过RSA生成1024位的公私钥对,用公钥加密叫做SVRKEY的服务器主密钥,私钥PRIKEY被单独加密存储在本地文件中。主密钥再加密叫做DBKEY的二级密钥。二级密钥用来加密全库加密的密钥、用户表空间的密钥、REDO日志的密钥等。除主密钥的加密使用RSA算法外,其它密钥包括PRIKEY都是用AES加密的。

    57aa3652aaeb031853c505e0f9056667.png

    多级密钥的架构

    2、身份认证及密码存储

    达梦使用账户密码的登录方式进行身份认证。账户密码的是以密文形式传输的,其加密使用的密钥是在客户端和服务器建立会话时进行协商的,一次一密。

    新建用户初次设置登录密码时,数据库只存储加密后的密码,并且不会保存任何形式的明文密码。

    3、通讯加密

    达梦支持SSL加密通讯,默认情况下SSL加密通讯不开启。关于SSL不做进一步讨论,客户SSL设置如图2所示。

    771a3e6dc7277cee8d217f9133d82e51.png

    达梦客户端SSL设置

    表空间TDE安全性

    达梦的表空间可以按创建方式分为两种,第一种是创建数据库时系统生成的,我们把这种叫默认表空间,另外一种是用户创建的,叫做用户表空间。默认表空间加密只能使用全库加密方式,在用户创建数据库时指明。使用全库加密后不再支持单独新建的加密表空间,可以认为全库加密是表空间加密的一种特例。默认表空间包括日志文件的密钥存储在系统文件的控制页中,用户表空间的密钥存储在控制文件中。

    53178a31c5940d15d34539d8bfae178d.png

    默认表空间密钥及算法

    704e89285e373e7546d70f804723a73a.png

    用户表空间密钥及算法

    达梦表空间加密支持AES等高安全性算法。既然算法是安全的,唯一需要关心的就是密钥的安全性。然而表空间的密钥是落地存储的,其安全性只能依赖于加密该表空间密钥的算法强度及密钥的安全程度。算法方面,如前所述各级密钥管理均使用高强度的加密算法,略显不足的是AES算法使用IV是固定不变的,这在一定程度上弱化了加密强度。另一方面,由于多级密钥管理的缘故,密钥安全性形成层层依赖的关系。根密钥即加密PRIKEY的密钥的安全性至关重,达梦的根密钥虽然没有落地,但其生成方式很容易被获取。有了根密钥就能依次解密各级密钥,最终得到表空间密钥,顺利的解密想要的数据。

    认证及密码安全性

    用户登录服务器时,客户端首先使用Diffie-Hellman算法产生一对公私钥,然后发送自己的公钥给服务器,服务器收到客户端的会话请求后使用相同的算法生成自己的公私钥,并且把公钥发送给客户端。双方会根据对方的公钥及自己的私钥计算出相同的数值串作为共享密钥,客户端以该密钥使用对称加密算法加密登录账户密码,服务器收到密文形式的账户密码后再以自己计算的密钥解密。

    c3f1be0be536acd9fc2f605609ed7c33.png

    用户登录过程的密码传输

    从登录的过程来看,每次会话双方都会交换公钥,然后随机生成加密密钥,这样可以确保登录账户的安全。根据Diffie-Hellman算法可知,双方公私钥的生成依赖于两个公共的参数,而这两个公共参数是可以被第三方获取到的。拿到参数的第三方可以伪装成服务器的角色监听客户端的会话请求,从而获取登录账户密码,然后再以客户端的角色利用获取的账户信息登录真正的服务器,实现中间人劫持攻击。这种方式的缺陷是通讯双方没有进行的身份认证(安华金和提交漏洞CNNVD-201901-1090)。

    服务器在拿到明文的账户密码后,会进行比对验证。前面我们提到用户密码是以密文形式存储的,服务器首先要对收到的密码做加密处理,生成固定长度的密文串。然后把该密文串和初次设定的密码密文进行比较。用户密码虽然是以密文形式存储的,但是其生成过程并不安全。

    缓解措施

    达梦的加密体系不管是多层密钥管理还是用户认证登录,或多或少存在一些问题。而这些问题容易被利用形成潜在攻击面,给用户财产造成巨大的损失。一般来说厂商对漏洞问题的修复需要一定的周期,就算是厂商能及时进行修复,用户也会因为各种因素考虑是否安装补丁或者升级到新的版本。

    安华金和针对上述问题提出了自己的解决方案。我们的DBCoffer TDE系列产品,除支持AES等国际商密算法外,更是支持安全性高的国密SM1和SM4算法;KMS动态密钥生成、隔离机制,即使在密钥泄露、加密失效(安华金和提交漏洞CNNVD-201812-1421)情况下也可以有效防护用户数据的安全;我们产品的权限管理机制可以从不同的访问维度针对性做防控策略,即使用户密码被盗的情况下,我们也可以根据登录用户的属性的变化做到访问控制。

    此外,我们的漏洞扫描产品DBScan,防火墙DBFirewall也针对上述问题添加了相应的规则和特征,能帮助用户及时有效发现和阻断恶意攻击。

    展开全文
  • 数据安全是数据库安全性的核心要素,达梦数据库(以下简称达梦)从多维度、不同层面对用户数据实现立体式保护。纵向来看,登录用户的账户密码每次使用协商的密钥加密传输、 对用户数据库操作的每个动作进行严格的权限...

    数据安全是数据库安全性的核心要素,达梦数据库(以下简称达梦)从多维度、不同层面对用户数据实现立体式保护。纵向来看,登录用户的账户密码每次使用协商的密钥加密传输、 对用户数据库操作的每个动作进行严格的权限检查、数据落地的完整性校验和完备的TDE加密方案。横向来看,用户和用户之间是会话独立的、操作层面实现REDO、UNDO等恢复保护机制、落地数据提供双写文件等备份机制。

    鉴于达梦安全体系的复杂性,我们对其研究不能做到面面俱到。本文的分析基于达梦7.6版本,侧重讨论其加密体系,并在此基础上观察当前的加密体系存在的安全性风险,给出有效的解决方案。

    a1710cad61cf280c3add1447aadd668c.png加密体系

    提起数据库加密,大家最先想到的可能就是TDE加密。TDE加密保护的是用户数据,理所当然是加密中的重中之重。除此之外,用户身份认证、通讯加密、多级密钥管理等也不可或缺。

    1密钥管理

    达梦使用多级密钥管理方式保证数据库密钥的安全性。达梦安装时通过RSA生成1024位的公私钥对,用公钥加密叫做SVRKEY的服务器主密钥,私钥PRIKEY被单独加密存储在本地文件中。主密钥再加密叫做DBKEY的二级密钥。二级密钥用来加密全库加密的密钥、用户表空间的密钥、REDO日志的密钥等。除主密钥的加密使用RSA算法外,其它密钥包括PRIKEY都是用AES加密的。

    1ff2297b6475269e1e1c00ecda5e9725.png

    多级密钥的架构

    2身份认证及密码存储

    达梦使用账户密码的登录方式进行身份认证。账户密码的是以密文形式传输的,其加密使用的密钥是在客户端和服务器建立会话时进行协商的,一次一密。

    新建用户初次设置登录密码时,数据库只存储加密后的密码,并且不会保存任何形式的明文密码。

    3通讯加密

    达梦支持SSL加密通讯,默认情况下SSL加密通讯不开启。关于SSL不做进一步讨论,客户SSL设置如图2所示。

    6dd2d1fcb8eda899ae3b4894685e5643.png

    达梦客户端SSL设置

    a1710cad61cf280c3add1447aadd668c.png表空间TDE安全性

    达梦的表空间可以按创建方式分为两种,第一种是创建数据库时系统生成的,我们把这种叫默认表空间,另外一种是用户创建的,叫做用户表空间。默认表空间加密只能使用全库加密方式,在用户创建数据库时指明。使用全库加密后不再支持单独新建的加密表空间,可以认为全库加密是表空间加密的一种特例。默认表空间包括日志文件的密钥存储在系统文件的控制页中,用户表空间的密钥存储在控制文件中。

    aacc6870ade6d22bf70bd673e6cd2f10.png

    默认表空间密钥及算法

    4b7f4e92550cdabb30ff26b5581d1fda.png

    用户表空间密钥及算法

    达梦表空间加密支持AES等高安全性算法。既然算法是安全的,唯一需要关心的就是密钥的安全性。然而表空间的密钥是落地存储的,其安全性只能依赖于加密该表空间密钥的算法强度及密钥的安全程度。算法方面,如前所述各级密钥管理均使用高强度的加密算法,略显不足的是AES算法使用IV是固定不变的,这在一定程度上弱化了加密强度。另一方面,由于多级密钥管理的缘故,密钥安全性形成层层依赖的关系。根密钥即加密PRIKEY的密钥的安全性至关重,达梦的根密钥虽然没有落地,但其生成方式很容易被获取。有了根密钥就能依次解密各级密钥,最终得到表空间密钥,顺利的解密想要的数据。

    a1710cad61cf280c3add1447aadd668c.png认证及密码安全性

    用户登录服务器时,客户端首先使用Diffie-Hellman算法产生一对公私钥,然后发送自己的公钥给服务器,服务器收到客户端的会话请求后使用相同的算法生成自己的公私钥,并且把公钥发送给客户端。双方会根据对方的公钥及自己的私钥计算出相同的数值串作为共享密钥,客户端以该密钥使用对称加密算法加密登录账户密码,服务器收到密文形式的账户密码后再以自己计算的密钥解密。

    07022688815915241241c58ff031260d.png

    用户登录过程的密码传输

    从登录的过程来看,每次会话双方都会交换公钥,然后随机生成加密密钥,这样可以确保登录账户的安全。根据Diffie-Hellman算法可知,双方公私钥的生成依赖于两个公共的参数,而这两个公共参数是可以被第三方获取到的。拿到参数的第三方可以伪装成服务器的角色监听客户端的会话请求,从而获取登录账户密码,然后再以客户端的角色利用获取的账户信息登录真正的服务器,实现中间人劫持攻击。这种方式的缺陷是通讯双方没有进行的身份认证(安华金和提交漏洞CNNVD-201901-1090)。

    服务器在拿到明文的账户密码后,会进行比对验证。前面我们提到用户密码是以密文形式存储的,服务器首先要对收到的密码做加密处理,生成固定长度的密文串。然后把该密文串和初次设定的密码密文进行比较。用户密码虽然是以密文形式存储的,但是其生成过程并不安全。

    a1710cad61cf280c3add1447aadd668c.png缓解措施

    达梦的加密体系不管是多层密钥管理还是用户认证登录,或多或少存在一些问题。而这些问题容易被利用形成潜在攻击面,给用户财产造成巨大的损失。一般来说厂商对漏洞问题的修复需要一定的周期,就算是厂商能及时进行修复,用户也会因为各种因素考虑是否安装补丁或者升级到新的版本。

    安华金和针对上述问题提出了自己的解决方案。我们的DBCoffer TDE系列产品,除支持AES等国际商密算法外,更是支持安全性高的国密SM1和SM4算法;KMS动态密钥生成、隔离机制,即使在密钥泄露、加密失效(安华金和提交漏洞CNNVD-201812-1421)情况下也可以有效防护用户数据的安全;我们产品的权限管理机制可以从不同的访问维度针对性做防控策略,即使用户密码被盗的情况下,我们也可以根据登录用户的属性的变化做到访问控制。

    此外,我们的漏洞扫描产品DBScan,防火墙DBFirewall也针对上述问题添加了相应的规则和特征,能帮助用户及时有效发现和阻断恶意攻击。

    7777158ef6c71edf794db0471d6678ce.png

    展开全文
  • 9.5 口令加密与技巧 253 9.5.1 如何存储口令 254 9.5.2 设置不存在的口令 254 9.5.3 变成另一个用户 255 9.6 审计 257 9.6.1 登录审计 257 9.6.2 操作审计 258 9.6.3 对象审计 259 9.7 保护审计跟踪 260 9.8 分布式...
  • 5.1 数据库的安全性 5.1.1 数据库安全性含义...存取权限两要素:数据对象和操作类型 存取权限:系统权限和对象权限 定义视图 数据加密 将明文加密成不可直接识别的密文,数据以密文形式存储和传输 审计 5.1.3 S

    5.1 数据库的安全性

    5.1.1 数据库安全性含义

    1. 数据库的安全性:指保护数据库防止非法使用所造成的数据泄露、更改或破坏。

    5.1.2 安全性控制的一般方法

    1. 安全性控制:指要尽可能地杜绝所有可能的数据库非法访问。
    2. 安全性措施:
      • 用户标识和鉴定:系统提供的最外层的安全保护措施。
      • 用户存取权限控制
        • 授权:定义用户存取权限
        • 存取权限两要素:数据对象和操作类型
        • 存取权限:系统权限和对象权限
      • 定义视图
      • 数据加密
        • 将明文加密成不可直接识别的密文,数据以密文形式存储和传输
      • 审计

    5.1.3 SQL Server 2012的数据安全性机制

    1. SQL Server 2012安全模型:
      1. 服务器安全管理
      2. 数据库安全管理
      3. 数据库对象访问权限管理

    5.1.4 SQL Server 2012身份验证模式

    1. Windows身份验证模式
      • 特点:“登陆一次”,授信连接
      • 优点:
        • 数据库管理员的工作可以集中在管理数据库方面,而不是管理用户账户。
        • Windows有着更强的用户账户管理工具
        • Windows的组策略支持多个用户同时被授权访问SQL Server
    2. 混合身份验证模式
      • 允许使用SQL Server身份验证模式或Windows身份验证模式
      • 优点:
        • 比Windows验证模式更安全
        • 能够支持更大范围的用户
        • 允许用户从未知或不可信的域进行连接
        • 允许SQL Server支持基于Web的应用程序
    3. 设置身份验证模式

    5.1.5 SQL Server 2012登陆账号和服务器角色

    1. SQL Server的服务器角色
      • 角色:对权限集中管理的一种机制,角色可以方便管理员对用户权限的集中管理
      • 服务器角色:是执行服务器级管理操作的用户权限的集合。是SQL Server系统内置的,数据库管理员(DBA)不能创建服务器角色

    5.1.6 SQL Server 2012的数据库用户账号和数据库角色

    1. 数据库的用户账号
      • 登录名:访问SQL Server的通行证,存在master数据库的表syslogins中
      • 用户名:主要用于数据库权限管理,必须和某个登录名相关联,存放在其相关数据库的sysusers表中
      • 一个登陆账户可以创建多个用户,但一个登陆账户对于每一个数据库只能创建一个用户与之对应
    2. 数据库角色:与服务器角色不同的是,数据库角色权限的作用域仅限在特定的数据库内
    3. 用户权限管理
      • 系统权限:表示用户对数据库的操作权限
      • 对象权限:授予数据库用户对特定数据库中的表、视图和存储过程等对象的操作权限,相当于数据库操纵语言的语句权限

    5.2 完整性控制

    5.2.1 数据库完整性含义

    1. 数据库完整性:保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作
    2. 完整性和安全性的区别
      • 安全性措施的防范对象时非法用户和非法操作
      • 完整性的防范对象时不合语义的数据

    5.2.2 完整性规则的组成

    1. 构成
      • 触发条件
      • 约束条件
      • 违约响应
    2. 从执行时间上分两类
      • 立即执行约束
      • 延迟执行约束
    3. 一条完整性规则五元组——D,O,A,C,P
      • D(Data)——代表约束作用的数据对象,可以是关系、元组和列
      • O(Operation)——代表出发完整性检查的数据库操作
      • A(Assertion)——代表数据对象必须满足的语义约束,这是规则主体
      • C(Condition)——代表选择A作用的数据对象值的谓词
      • P(Oricedure)——代表违反完整性规则时触发执行的操作过程

    5.2.3 完整性约束条件的分类

    1. 值约束和结构约束
      • 值约束:对数据类型、数据格式、取值范围和空值进行规定
      • 结构约束:函数依赖约束,实体完整性约束,参照完整性约束,统计约束
    2. 静态约束和动态约束
      • 静态约束,值的约束和结构的约束均属于静态约束
      • 动态约束,反映的是数据库状态变迁的约束

    5.2.4 数据完整性的实施

    1. 声明式数据完整性
    2. 程序化数据完整性
    3. 实施数据完整性的方法
      • 约束(优先选择,执行速度比默认值和规则快)
      • 默认值
      • 规则
      • 存储过程
      • 触发器

    5.2.5 规则

    1. 创建规则
    CREATE RULE rule_name AS condition_expression
    
    1. 规则的绑定与松绑
    使用存储过程sp_bindrule绑定规则
    sp_bindrule [@rulename =] 'rule', [@objname =] 'object_name'[, 'futureonly']
    
    futureonly:仅在绑定规则到用户自定义数据类型上时才可以使用
    
    使用存储过程sp_unbindrule解绑规则
    sp_unbindrule [@objname =] 'object_name'[, 'futureonly']
    

    5.2.6 默认

    1. 创建默认
    CREATE DEFAULT default_name AS constant_expression
    
    1. 默认的绑定和松绑
    使用存储过程sp_binddefault绑定默认
    sp_binddefault [@defaultname =] 'default', [@objname =] 'object_name'[, 'futureonly']
    
    使用存储过程sp_unbinddefault绑定默认
    sp_binddefault [@objname =] 'object_name'[, 'futureonly']
    
    如果同时绑定了一个规则和默认,默认应该符合规则的规定
    
    1. 删除默认(删除前应先解绑)
    DROP DEFAULT {default_name} [,...n]
    

    5.3 并发控制与封锁

    5.3.1 数据库并发性的含义

    并发控制:防止多个用户并发存取同一数据时产生不正确的数据或破坏数据的完整性

    并发控制就是解决这类问题保持数据库中数据的一致性

    5.3.2 事务(Transaction)

    1. 事务:是数据库系统中执行的一个工作单位,它是由用户定义的一组操作序列,
    2. 事务的特征
      • 原子性
      • 一致性
      • 隔离性
      • 持久性

    5.3.3 并发操作导致的数据不一致性

    1. 丢失更新
    2. 污读
    3. 不可重读

    5.3.4 封锁,实现并发控制的方法(重点)

    1. 封锁类型
      • 排他型锁(写封锁,简称X封锁):原理,禁止并发操作
      • 共享封锁(读封锁,简称S封锁):原理,允许其他用户对同一数据对象进行查询,但不能进行修改
    2. 封锁协议
      • 一级封锁协议:事务T在修改数据对象之前必须对其加X锁,直到事务结束。此级别只有修改数据时才进行加锁,读取并不加锁,所以不能防止“污读”和“不可重读”数据
      • 二级封锁协议:在一级封锁协议的基础上,加上事务T在读取数据R之前必须对其加S锁,读完后释放S锁。可防止“污读”,但在读取数据之后立即释放S锁,仍然不能防止“不可重读”数据
      • 三级封锁协议:在一级封锁协议的基础上,嘉盛事务T在读取数据R之前必须先对其加S锁,读完后不释放S锁,直到事务T结束后才释放。此类彻底解决了并发操作带来的三个不一致性问题
    3. 封锁粒度
      • 封锁数据对象的大小称为封锁粒度
      • 封锁粒度越小,系统能够被封锁的对象就越多,并发度越高,但封锁机构越复杂,系统开心越大。封锁粒度越大则相反
      • 在实际应用中选择封锁粒度时应同时考虑封锁机构和并发度两个因素
    4. 死锁和活锁
      • 活锁:当某个事物请求对某一数据进行排他性封锁时,由于其他事务对该数据的操作而使这个事务处于永久等待状态,这种状态称为活锁。避免活锁的简单方法采用先来先服务的策略
      • 死锁:在同时处于等待状态的两个或多个事务中,其中的每一个在它能够进行之前,都等待着某个数据,而这个数据已被他们中的某个事务所封锁,这种状态称为死锁
    5. 死锁产生的必要条件
      • 互斥条件:对数据的封锁采用排他式
      • 不可抢占条件:不能别别的事务强行抢占
      • 部分分配条件:一个事务已经封锁分给它的数据对象,但仍然要求封锁其他数据
      • 循环等待条件:允许等待其他事物释放数据对象,系统处于加锁请求相互等待的状态
    6. 死锁的预防
      • 一次加锁法:每个事务将所要使用的数据对象全部一次枷锁,只要有一个加锁不成功,则本次加锁失败,立即释放所有加锁成功的数据对象,然后重新开始加锁
        • 扩大了封锁范围,降低了系统的并发度
        • 由于数据是动态变化的,很难事先精确的确定每个事务要封锁数据对象,进一步降低了并发度,影响了系统的运行效率
      • 顺序加锁法:预先对所有可加锁的数据对象规定一个加锁顺序,对每个事务都需要按此顺序加锁,在释放时,按逆序进行
    7. 死锁的诊断与解除:选择一个处理死锁代价最小的事务,将其撤销,并在之后加以恢复

    5.4 数据库的恢复

    5.4.1 数据库恢复的含义

    数据库的恢复:系统必须具有检测故障并把数据从错误状态中恢复到某一正确状态的功能

    5.4.2 数据库恢复的原理及其实现技术

    1. 数据库恢复的原理:利用数据冗余,恢复系统应提供两种类型的功能:生成冗余数据和冗余重建
    2. 生成冗余数据
      • 登记日志文件
      • 数据转储

    5.4.3 数据库的故障和恢复策略

    1. 事务故障:采用事务撤销
    2. 系统故障
    3. 介质故障
    展开全文
  • (核心要素) 非抵赖性 可控性 基本安全服务 鉴别服务 访问控制服务 机密性服务 完整性服务 抗抵赖服务机制 系统安全的八大机制 安全机制:用来检测,防范安全攻击,或者可恢复系统的机制 数据加密机制 加密算法:...

    安全的基本体系

    安全的五个基本特征

    机密性
    完整性
    可用性

    (核心要素)
    非抵赖性
    可控性

    基本安全服务

    鉴别服务
    访问控制服务
    机密性服务
    完整性服务
    抗抵赖服务机制

    系统安全的八大机制

    安全机制:用来检测,防范安全攻击,或者可恢复系统的机制

    数据加密机制

    加密算法:对称密码机制,非对称密码机制
    需要加密层选择,加密算法选择,密钥管理

    访问控制机制

    给客户分配权限

    数据完整性机制

    防止未授权的数据乱序,丢失,重放,插入,篡改
    实例:级联删除出现的问题

    数字签名机制

    防止伪造,假冒,篡改,否认

    鉴别交换机制

    通过交换信息鉴别彼此身份

    业务填充机制
    路由控制机制

    选择特殊的路由保证连接,传输的安全

    公证机制

    CA

    系统安全基本原则

    隔离原则

    分解减少攻击面

    最小特权原则

    每个用户只能拥有刚够完成工作的最小权限

    纵深防御原则

    采用多种有效防御措施促使攻击搁浅

    用户输入不信任原则

    彻底验证所有用户输入

    关卡检查原则
    失效保护原则
    最弱连接安全化原则
    建立默认原则

    为系统安全提供默认配置

    减少攻击面原则

    减少应用程序不需要的模块和组件,协议,服务。减少攻击可利用的漏洞

    数据库保护

    数据库安全性

    访问控制
    存取控制
    视图机制
    数据加密
    审计

    数据库完整性

    触发器:通过事件触发被动执行

    按照被激活的时间分为

    after(for):触发器在触发他们的语句完成后触发
    instead of:代替触发操作执行

    按照事件分为:

    insert触发器:表或者视图插入操作时被激活
    delete触发器:表或者视图执行删除操作时激活
    update触发器:表或者视图执行修改操作时被激活

    创建触发器

    create trigger 触发器名 on {表或者视图} 【with encryption】//加密
    {FOR|AFTER|INSTEAD OF} {[INSERT],[,],[UPDATE],[,],[DELETE]} AS
    sql_statement[…n]

    管理触发器

    通过sp_helptext能够查看触发器的正文信息

    触发器使用的两个特殊表

    当触发事件时,两个特殊的表被创建,即插入表和删除表,也称为幻表
    存放备份

    SQL表连接查询

    • 内连接inner join
    • 左连接left join
    • 右连接right join
    • 全连接full join

    数据库并发控制

    基本概念

    事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做
    定义事务的SQL语句

    • begin translation(事务开始)
    • commit (事务提交)
    • rollback(事务回滚)
    封锁机制

    封锁类型:

    • 排他锁,X锁,写锁,只允许事务读和修改,其他事务不能修改和读,也不能加锁
    • 共享锁,S锁,读锁,只允许对象被读,其他事务只能加S锁
      封锁协议:在对数据对象加锁时,为有效实现并发控制,还需要约定一些规则,这些规则称为封锁协议,何时申请X锁或S锁,封锁时间,何时释放

    常用封锁协议:一二三级封锁协议

    封锁出现的问题及解决办法

    • 活锁,采用先来先服务
    • 死锁,一次封锁法,顺序封锁法

    封锁的粒度:指封锁对象的大小

    多粒度封锁

    事务调度的可串行性

    调度:多个任务操作的一个执行顺序称为调度
    串行调度:依次执行
    并发调度:分时处理多个事务
    可串行化:如果一个并发调度的执行结果与某一串调度的执行结果等价,则这个并发调度称为可串行化的调度,否则是不可串行化的调度
    保证可串行性的策略:两段锁协议(2PL协议)(可串行化的充分条件,但不是必要条件,且可能发生死锁)

    对事务的加锁解锁阶段分为两个阶段:

    • 获得封锁(扩展阶段),事务可以申请获得任何数据项上的任何类型的锁,但是不能释放锁
    • 释放阶段(收缩阶段),事务可以释放任何数据项上的任何类型的锁,但是不能申请任何锁

    数据库备份与恢复

    展开全文
  • 9.5 口令加密与技巧 253 9.5.1 如何存储口令 254 9.5.2 设置不存在的口令 254 9.5.3 变成另一个用户 255 9.6 审计 257 9.6.1 登录审计 257 9.6.2 操作审计 258 9.6.3 对象审计 259 9.7 保护审计跟踪 260 9.8 分布式...
  • 区块链不仅是一个流行词。它也不限于加密货币和比特...在本文中,我想实现一个区块链数据库,以了解此类解决方案的关键要素。而且,为了使其更具挑战性,我将在不使用任何数据库或服务器的情况下做到这一点。 该解决..
  • 9.5 口令加密与技巧 253 9.5.1 如何存储口令 254 9.5.2 设置不存在的口令 254 9.5.3 变成另一个用户 255 9.6 审计 257 9.6.1 登录审计 257 9.6.2 操作审计 258 9.6.3 对象审计 259 9.7 保护审计跟踪 260 ...
  • 1.协议和数据格式(http(s)-json/xml webservice socket自定义协议--二进制) 2.安全性问题( https 数据对称加密 验签等) 3.交互日志(文件、数据库) 4.业务判重 5.异常处理 6.失败重试
  • 后台收到后进行转加密,与数据库里保存的密文进行比对。通讯中的加密算法,要体现变化性,每次通讯计算出的密文不同。数据库保存的密文,要与账号、卡号等要素相关,相同的明文,不同的账号、卡号计算出的密文不同。...
  • 在保密性方面,新的数据存储技术已内置 AES-256 加密模块,对于设置有密码保护的数据库,存储数据时会自动进行加密,为此, 在 myBase 中保存私密信息会更加安全可靠;理论上,如果没有正确输入密码,任何人将无法...
  • 在保密性方面,新的数据存储技术已内置 AES-256 加密模块,对于设置有密码保护的数据库,存储数据时会自动进行加密,为此, 在 myBase 中保存私密信息会更加安全可靠;理论上,如果没有正确输入密码,任何人将无法...
  • 在保密性方面,新的数据存储技术已内置 AES-256 加密模块,对于设置有密码保护的数据库,存储数据时会自动进行加密,为此, 在 myBase 中保存私密信息会更加安全可靠;理论上,如果没有正确输入密码,任何人将无法...
  • 银盛金融支付

    2016-03-17 20:45:31
    数据库中乐观锁与悲观锁的区别: 多线程: 事物处理机制: 充值的流程: 退款的流程: 对账的必须要素是哪些: 银行不是所有的都支持全额退款的: 对接商户的时候接口报文是怎么定义的: 加密常用的方式有...
  • PG的安全管理

    2020-05-21 17:27:36
    文章目录PG的安全管理1 PG的不安全因素2 PG的安全概念要素3 pg_hba.conf文件4 监听配置5 连接的参数配置6 sha-256加密7 ident验证8 SSL配置9 实例级别的安全10 数据库安全11 Schema权限12 表和列 行级别的安全13 ...
  • 网站架构技术

    2016-10-09 21:00:53
    大型网站架构要素 性能 可用性 伸缩性 扩展性 安全性 瞬时响应:网站的高性能架构 网站的性能测试 不同的视角 用户的视角 开发人员的视角 运维人员的视角 性能测试指标 响应时间 并发数 ...
  • 区块链应用存储

    2019-09-16 15:23:33
    为区块链应用设计本地数据库存储结构 区块链和区块链应用这两个概念是不一样的。对于一个纯区块链而言,只需要保证它拥有三个要素:1.链表结构的区块存储结构设计,2.点对点网络,3.加密技术保证不可伪造。但是对于...
  • 端到端加密要素认证 主题 资料下载 支持 密码随时可用 单击密码图标以选择当前站点的所有帐户。 让扩展程序填写并提交您的登录表单,或将密码或用户名轻松复制到剪贴板。 如果扩展名找不到正确的密码,则可以使用...
  • 21天学会SQL

    2013-04-10 14:46:04
    1.4.1 绘制E-R图的基本要素 20 1.4.2 E-R图绘制实例 22 1.5 小结 24 1.6 习题 24 第2章 数据库的安装 ( 教学视频:26分钟) 26 2.1 SQL Server 2008版本介绍 26 2.1.1 SQL Server 2008服务器版 26 2.1.2 SQL Server...
  • Teedy是面向个人和企业的开源,轻量级文档管理系统。 :sparkles: :sparkles: 演示版 演示可在 访客登录启用,并具有对所有文档的读取访问权限 ...产品特点 ...该数据库是嵌入式H2数据库,但还支持PostgreSQ
  • 一、区块链的五个核心要素: 1、数据库:区块是交易,彼此连接形成链。 2、加密的代币:系统发行代币,作为价值存储工具。 3、点对点网络:打破传统,弱化系统对某些单点的依赖性。 4、共识算法:所有交易遵守的...
  • 区块链,是去中心化的数据库账本,建立一种数据加密、不被篡改伪造的信任体制。在底层技术三要素、类型和形态上,二者有很大的相似之处。云计算目前已经是一个很成熟的技术和应用了,区块链作为后起之秀,能否利用...
  • 在这篇博客的帖子里,我将会描述不同的使用MySQL数据库的SSL配置方法。 SSL给了你什么? 你可以通过互联网使用 MySQL 复制特性(replication) 或者通过互联网连接到MySQL。 还有可能是你通过企业网去连接,这样会有...
  • Web安全实战

    2021-03-03 20:47:47
    在互联网时代,数据安全与个人隐私受到了前所未有的挑战,我们作为网站开发者,必须让一个web站点满足基本的安全三要素:(1)机密性,要求保护数据内容不能泄露,加密是实现机密性的常用手段。(2)完整性,要求...
  • 领导在进行工作任务创建时,可以直接分配任务事项给工作负责人,并拟出任务日期、周期等要素。工作负责人安排并透视团队每位下属成员的每一天任务安排和进展,并将状态信息、完成信息等汇总阶段上报给领导,便于领导...
  •  9.2.2 风险要素  9.2.3 风险评估过程  9.3 信息系统安全风险评估  9.3.1 风险评估模型  9.3.2 风险评估实例  9.4 思考与练习 第10章 计算机系统安全管理  10.1 计算机系统安全管理简介  10.1.1 安全管理的...
  • 领导在进行工作任务创建时,可以直接分配任务事项给工作负责人,并拟出任务日期、周期等要素。工作负责人安排并透视团队每位下属成员的每一天任务安排和进展,并将状态信息、完成信息等汇总阶段上报给领导,便于领导...
  •  用户密码必须加密保存,加密算法可采用MD5、DES、3DES、BASE64等,自行选择或自定义算法(需在接口文档中描述) 运行要求  后台服务部署在Linux服务器;  提供windows平台客户端或浏览器的登录功能; 响应时间 ...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    110 <br>5.5 NET应用技巧 110 <br>0180 如何使用ASP.NET技术对口令加密 110 <br>0181 如何设定ASP.NET全局变量 111 <br>0182 如何设定全局联接数据库对象 111 <br>0183 如何在ASP.NET中获得...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

数据库加密要素