达梦数据库产品架构
DM8 采用了独特的双存储引擎架构,行存储引擎和列存储引擎可相互配合、协同工作。同时实现了计算层和存储层的分离,同一内核既支持共享存储式集群,也支持分布式事务集群。 相较于目前主流产品架构——不同特性依靠不同内核去实现,DM8 架构为业界首创,也是未来数据库架构的发展方向。
一、身份鉴别
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
达梦支持数据库身份验证模式和外部身份验证模式。数据库身份验证模式需要利用数据库口令,即在创建或修改用户时指定用户口令,用户在登录时输入对应口令进行身份验证;外部身份验证模式支持基于操作系统(OS)的身份验证、LDAP 身份验证和 KERBEROS 身份验证。
1、查看数据库中的用户信息(客户端连接,可一条命令查询是否具备口令复杂度和口令有效期策略)。
select
b.name "用户名" ,
a.SESS_PER_USER "最大会话数" ,
a.CONN_IDLE_TIME "最大空闲时间(分钟)",a.FAILED_NUM "登录失败次数" ,
a.LIFE_TIME "口令有效期(天)" ,
a.REUSE_TIME "口令等待期(天)" ,
a.REUSE_MAX "口令变更次数" ,
a.LOCK_TIME "口令锁定期(分钟)" ,
a.GRACE_TIME "口令宽限期(天)" ,
CASE WHEN a.LOCKED_STATUS='1' THEN 'LOCKED' ELSE THEN 'OPEN' END
"用户状态",
a.LASTEST_LOCKED "最后一次的锁定时间" ,
a.PWD_POLICY "口令策略" ,
--a.RN_FLAG "是否只读" ,
a.ALLOW_ADDR "允许的 IP 地址" ,
a.NOT_ALLOW_ADDR "不允许的 IP 地址",
a.ALLOW_DT "允许登录的时间段" ,
a.NOT_ALLOW_DT "不允许登录的时间段" ,
a.LAST_LOGIN_DTID "上次登录时间" ,
a.LAST_LOGIN_IP "上次登录 IP 地址" ,
a.FAILED_ATTEMPS "即将被锁定的连续登录失败的次数"
from
SYSUSERS a,
SYS.SYSOBJECTS b
where
a.id=b.id;
2、无客户端环境,在命令行中进行查询:
①查询用户信息,查看是否具备唯一性:
---查询数据库用户信息
select username,user_id,default_tablespace,profile from dba_users;
②查询密码策略:
---查询每个用户密码策略
select username,password_versions,account_status from dba_users;
---查询全局密码策略
SELECT * FROM V$PARAMETER WHERE NAME= 'PWD_POLICY';
查看VALUE SYS_VALUE FILE_VALUE 这三个值(默认为2)
0 无限制。但总长度不得超过 48 个字节
1 禁止与用户名相同
2 口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值
4 至少包含一个大写字母(A-Z)
8 至少包含一个数字(0-9)
16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口令策略为 2+4=6 即可。
---查询PWD_MIN_LEN的最小密码长度值
SELECT * FROM V$PARAMETER WHERE NAME= 'PWD_MIN_LEN';
③查询口令有效期策略
name:用户名
LIFE_TIME :口令有效期(天)
REUSE_TIME:口令等待期(天)
REUSE_MAX:口令变更次数
GRACE_TIME :口令宽限期(天)
SELECT b.name ,a.LIFE_TIME,a.REUSE_TIME ,a.REUSE_MAX ,a.GRACE_TIME FROM SYSUSERS a,SYS.SYSOBJECTS b where a.id=b.id;
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
---查询登录失败策略
select "USERNAME" "用户名","FAILED_NUM" "登录失败次数","LOCK_TIME" "锁定时间" from SYSUSERS p,dba_users u where p.FAILED_NUM not in ('0') order by 1,2;
--终端里面去除汉字
select USERNAME,FAILED_NUM,LOCK_TIME from SYSUSERS p,dba_users u where p.FAILED_NUM not in ('0') order by 1,2;
---查询超时自动退出策略
SELECT B.NAME,A.CONN_IDLE_TIME FROM SYSUSERS A,SYS.SYSOBJECTS B WHERE A.ID=B.ID;

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
DM 提供两种通信加密方式:一基于传输层的 SSL 协议加密;二基于应用层的消息包加密。两个层次的加密互不影响,可以同时使用。因为任何一种加密方式都足够安全,而且双重加密会占用更多的数据库资源,所以通常情况下,没必要同时开启这两种加密。
基于传输层的 SSL 协议加密
选择是否使用 SSL 协议加密以 DM 数据库服务器端的设置为准,即通过设置服务器配置文件 DM.INI 中的 ENABLE_ENCRYPT 参数来指定,客户端以服务器采用的通信方式与其进行通信。
ENABLE_ENCRYPT 取值 0、1 和 2。0:不开启 SSL 加密和 SSL 认证;1:开启 SSL 加密和 SSL 认证;2:开启 SSL 认证但不开启 SSL 加密。缺省值为 0。不论设置为 1 还是 2,它内部所使用的密码套件是 SSL 协议自动协商的,达梦未进行任何干涉。
系统管理员可通过查询 V$PARAMETER 动态视图查询 ENABLE_ENCRYPT 的当前值。
SELECT * FROM V$PARAMETER WHERE NAME='ENABLE_ENCRYPT';
另外,DM.INI 中的 MIN_SSL_VERSION 参数指定了允许连接的 SSL 最低版本,此参数设置仅当 ENABLE_ENCRYPT 不为 0 时有效。MIN_SSL_VERSION 的可取值包括:0:所有版本 0x0301:TLSv1 0x0302:TLSv1.1 0x0303:TLSv1.2 0x0304:TLSv1.3
MIN_SSL_VERSION 缺省为 0,为静态 INI 参数,修改后需要重启 DM 数据库服务器才能生效。
当选择 SSL 加密时,需要在 DM 数据库服务器所在目录下的 server_ssl 子目录中存放 CA 的证书、服务器的证书和服务器的密钥,同时在客户端所在目录下的 client_ssl 子目录中存放 CA 的证书、客户端的证书和客户端的密钥,这样服务器和客户端的通信即是建立在加密的 SSL 连接之上的。此时如果没有配置好 SSL 环境,则通讯仍旧不加密。
当选择 SSL 认证时,不进行通信加密,只是检查客户端和服务器的证书是否匹配。此时如果服务器 SSL 环境没有配置则服务器无法正常启动,如果客户端 SSL 环境没有配置则无法连接服务器。
查询结果展示:

基于应用层的消息包加密
选择是否使用基于应用层的消息包加密以 DM 数据库服务器端的设置为准,即通过设置服务器配置文件 DM.INI 中的 COMM_ENCRYPT_NAME 参数来指定,客户端以服务器采用的通信方式与其进行通信。
COMM_ENCRYPT_NAME 取值空串、算法名分别代表不加密、加密。缺省为空串。当算法名写错,则使用加密算法 DES_CFB。DM 支持的加密算法名可以通过查询动态视图 V$CIPHERS 获取。应用层加密的密钥是通过 DH 密钥交换算法协商生成。
系统管理员可通过查询 V$PARAMETER 动态视图查询 COMM_ENCRYPT_NAME 的当前值。
SELECT * FROM V$PARAMETER WHERE NAME='COMM_ENCRYPT_NAME';

d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
访谈管理员并进行验证,是否采用双因子身份鉴别技术,鉴别技术是什么 。实际实现双因素认证比较麻烦,一般情况判定为不符合。
二、访问控制
a)应对登录的用户分配账户和权限;
1)查看用户,并结合结合访谈管理员是否存在网络管理员,安全管理员,系统管理员、审计管理员等多个账户,为各个管理用户分配对应的权限,根据所列出的账户,查看是否存在默认账户,默认账户是否已禁用。
---查询用户信息
select username,user_id,default_tablespace,profile from dba_users;
---查看用户的角色权限
select * from SYS.DBA_ROLE_PRIVS ;

知识扩展:https://eco.dameng.com/document-preview/dm/zh-cn/ops/SelfAccessControl
DM 预定义角色:
在 DM 数据库中有两类角色,一类是 DM 预设定的角色,一类是用户自定义的角色。DM 提供了一系列的预定义角色以帮助用户进行数据库权限的管理。预定义角色在数据库被创建之后即存在,并且已经包含了一些权限,数据库管理员可以将这些角色直接授予用户。通常在日常使用中,我们建议对于新创建用户赋予 RESOURCE、SOT、VTI 这三个角色即可满足大多数需求,特殊的需求则通过权限的赋予来实现。在“三权分立”和“四权分立”机制下,DM 的预定义角色及其所具有的权限是不相同的。
“三权分立”安全机制将用户分为了三种类型,“四权分立”安全机制将用户分为了四种类型,每种类型又各对应五种预定义角色。如:DBA 类型对应 DBA、RESOURCE、PUBLIC、VTI、SOI 预定义角色;
AUDITOR 对应 DB_ADUTI_ADMIN、DB_AUDIT_OPER、DB_AUDIT_PUBLIC、DB_AUDIT_VTI、DB_AUDIT_SOI 预定义角色;
SSO 对应 DB_POLICY_ADMIN、DB_POLICY_OPER、DB_POLICY_PUBLIC、DB_POLICY_VTI、DB_POLICY_SOI 预定义角色;
DBO 对应 DB_OBJECT_ADMIN、DB_OBJECT_OPER、DB_OBJECT_PUBLIC、DB_OBJECT_VTI、DB_OBJECT_SOI 预定义角色。
b)应重命名或删除默认账户,修改默认账户的默认口令;
达梦数据库具有特定的默认账户,存在默认口令即用户名,达梦数据库实现了 B1 级安全特性。“三权分立”的安全机制,将系统管理员分数据库管理员、数据库安全员和数据库审计员三类。在安装过程中,DM 数据库会预设数据库管理员账号 SYSDBA、数据库安全员账号 SYSSSO 和数据库审计员账号 SYSAUDITOR,其缺省口令都与用户名一致。“四权分立”的安全机制,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四类,在“三权分立”的基础上,新增数据库对象操作员账户SYSDBO,其缺省口令为 SYSDBO。用户需要在安装过程中或者安装完毕后立即修改缺省口令,避免因口令泄漏造成的安全问题。
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;
1)询问管理员数据库中的账户使用情况,是否存在无人使用的账户,如果存在建议删除。
2)检查网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录数据库。根据所列出的账户,询问数据库管理员各个账户的作用,是否存在多余的、过期的和共享账户。
d)应授予管理用户所需的最小权限,实现管理用户的权限分离;
(1)数据库管理员 (DBA )
“三权分立”的安全机制,每个 DM 数据库至少需要一个数据库管理员来管理,负责评估数据库运行所需的软、硬件环境、安装和升级 DM 数据库、配置 DM 数据库参数、创建主要的数据库存储结构(表空间)和对象(如表、视图、索引、角色、用户等)、监控和优化数据库性能、数据导入导出以及数据库的备份和恢复等。“三权分立”时数据库管理员既可进行系统管理和维护工作,也可对数据内容进行增删查改动作。根据国产数据库军事使用要求,数据库管理员只能进行系统管理和维护工作,不能对数据内容进行增删查改,数据库应用人员则可操作数据内容,而不能管理和维护系统。“四权分立”的安全机制,在原有“三权分立”基础上调整自主访问控制权限,只具有“三权分立”中 DBA 角色预设的一部分与数据库管理相关的明确的数据库权限,如数据库创建、备份、还原和校验等。
(2 ) 数据库安全员(SSO )
对于很多对安全性要求不高的系统来说,C2 级安全特性已经能够工作得很好,此时不需要考虑通过数据库安全员来进一步加强系统的安全机制。但是在很多大型的系统中,安全性还是至关重要的,有必要由安全员来制定安全策略,强化系统安全机制,此时数据库安全员的主要任务就是制定安全策略,定义新的数据库安全员,设置系统的安全等级、范围和组,并为主、客体定义安全标记,从而全面提升系统安全性。
(3 ) 数据库审计员(AUDITOR )
数据库审计员可以设置要审计的对象和操作、定义新的数据库审计员、查看和分析审计记录。通过设置审计,几乎可以跟踪任何人在系统内执行的任何操作,为事后追查提供便利。
(4)数据库对象操作员 (DBO )
数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己拥有的数据库对象(表、视图、存储过程、序列、包、外部链接)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。
备注:另外在达梦数据库中有一个特殊的预定义用户“SYS”,此用户仅用于保存系统内部对象,并非数据库管理员,也无法进行登录。
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
该测评项满足等保要求。
见官网:https://eco.dameng.com/document-preview/dm/zh-cn/ops/dm_sjzzfwkz
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
结合a)、b)、c)、d)、e)项,并访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级。询问数据库管理员是否具有安全策略,数据库是否具有重要的表。在企业管理器中右键点击重要的表,查看其权限。
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
这条达梦数据库默认不符合,但是可以启用客户重用,参数:ENABLE_OBJ_REUSE : 是否支持客体重用,0:不支持;1:支持。注:该参数设置仅安全版有效。
三、安全审计
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
查看审计状态
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';
审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int);控制,过程执行完后会立即生效,param 有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
查看默认值PARA_VALUE的值为0,未开启。
具体审计内容见官方文档:https://eco.dameng.com/document/dm/zh-cn/pm/audit.html
审计策略制定:
一般在做等保或分保测评时候需要开启数据库的审计功能,以便通过相关单位的检查。按照常见的审计要求,通常在以下几种情况当中要制定审计的策略:
1、对用户登录登出审计
可以详细记录业务用户和管理用户的登录登出行为,此举可以排查是否有异常未知的连接。
CopySP_SET_ENABLE_AUDIT(1);
SP_AUDIT_STMT('CONNECT', 'NULL', 'ALL');
2、对用户的 DDL 操作审计
当对数据库做 DDL 操作,尤其是 drop、alter 操作时,此举可以防止误修改或删除对象。
CopySP_SET_ENABLE_AUDIT(1);
SP_AUDIT_STMT('TABLESPACE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('USER', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('PACKAGE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('ROLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('PACKAGE BODY', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('SCHEMA', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('VIEW', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('PROFILE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('INDEX', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('PROCEDURE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('TRIGGER', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('SEQUENCE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('CONTEXT', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('SYNONYM', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('BACKUP', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('RESTORE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('BACKUP TABLE', 'SYSDBA', 'ALL');
3、对用户的 DML 操作审计
当对数据库做 DML 操作,特别是 update、delete 操作时,此举可以防止误更新或删除表中的数据。
CopySP_SET_ENABLE_AUDIT(1);
SP_AUDIT_STMT('DELETE TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('UPDATE TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('EXECUTE PROCEDURE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('INSERT TABLE', 'SYSDBA', 'ALL');
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
注意:查询日志要登录审计管理员账户:默认账户密码都是:SYSAUDITOR
只要 DM 系统处于审计活动状态,系统按审计设置进行审计活动,并将审计信息写入审计文件。审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、操作时间、当前审计条件等。审计用户可以通过动态视图 SYSAUDITOR.V$AUDITRECORDS
查询系统默认路径下的审计文件的审计记录。
---查询审计日志信息
SELECT * FROM SYSAUDITOR.V$AUDITRECORDS a order by a.OPTIME desc;
select * from V$AUDITRECORDS;
---查询登录登出日志
SELECT USERNAME,IP,OPERATION,SQL_TEXT,DESCRIBTION,MAC FROM SYSAUDITOR.V$AUDITRECORDS a order by a.OPTIME desc;
核查是否部署第三方工具(数据库审计系统)增强达梦数据库日志功能。记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
应保证各个管理员尽可以访问与自身相关的日志文件,如关键日志仅允许特权账户访问
1)访谈管理员对审计记录如何保护,对审计记录是否定期备份,备份策略。
是否采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 改或覆盖,数据库本地日志保存时间超过6个月。采用第三方数据库审计产品,审计记录保存时间超过6个月。
审计信息存储在审计文件中。审计文件默认存放在数据库的 SYSTEM_PATH
指定的路径,即数据库所在路径。用户也可在 dm.ini 文件中添加参数 AUD_PATH
来指定审计文件的存放路径。例如:新增一个 AUD_PATH
的路径,该参数为只读参数,需要重启数据库后生效。
---查看审计记录保存的位置
SELECT * FROM V$DM_INI WHERE PARA_NAME ='AUD_PATH';
随着数据库的运行,审计记录将会不断增加,审计文件需要更多的磁盘空间。在极限情况下,审计记录可能会因为磁盘空间不足而无法写入审计文件,最终导致系统无法正常运行。对这种情况的处理有两种策略,通过设置 DM 的 INI 参数 AUDIT_FILE_FULL_MODE
进行配置。当将 AUDIT_FILE_FULL_MODE
设置为 1 时,将删除最老的审计文件,直至有足够的空间创建新审计文件。若将所有可以删除的审计文件都删除后空间仍旧不够,则数据库会挂起不再处理任何请求,直至磁盘空间被清理出足够创建新审计文件的空间;当将 AUDIT_FILE_FULL_MODE
设置为 2 时,将不再写审计记录,默认值为 1。AUDIT_FILE_FULL_MODE
为静态参数,可通过系统过程 SP_SET_PARA_VALUE
进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。
SELECT * FROM V$DM_INI WHERE PARA_NAME ='AUDIT_FILE_FULL_MODE';
d)应对审计进程进行保护,防止未经授权的中断。
达梦数据库的审计开关必须由具有数据库审计员权限的管理员进行设置,非数据审计员权限的用户无法对审计功能进行操作。
四、入侵防范
a)应遵循最小安装的原则,仅安装需要的组件和应用程序;
此项适用于操作系统、网络设备,测评对象为数据库,此项不适用。
b)应关闭不需要的系统服务、默认共享和高危端口;
此项适用于操作系统、网络设备、安全设备,测评对象为数据库,此项不适用。
c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制;
见身份鉴别a)项执行的SQL语句,以下为简化命令
客户端使用命令:
select
b.name "用户名" ,
a.ALLOW_ADDR "允许的 IP 地址" ,
a.NOT_ALLOW_ADDR "不允许的 IP 地址"
from
SYSUSERS a,
SYS.SYSOBJECTS b
where
a.id=b.id;
命令行查询使用命令:
select b.name "用户名" ,a.ALLOW_ADDR "允许的 IP 地址" ,a.NOT_ALLOW_ADDR "不允许的 IP 地址"from SYSUSERS a,SYS.SYSOBJECTS b where a.id=b.id;

d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求;
此项适用于应用系统,测评对象为数据库,此项不适用。
e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;
1) 访谈管理员是否定期或不定期进行漏洞扫描或渗透测试,周期按照天/月/季度/半年/年等方式(建议漏洞扫描周期最长半年一次)。
2)通过本次漏洞扫描是否发现与数据库相关的高危漏洞,若存在,是否及时进行漏洞修补,检查数据库版本去了解此版本的漏洞情况。
查询版本命令:
select * from v$version;
f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。
此项适用于网络设备、安全设备、操作系统,被测对象为数据库,此项不适用。
五、恶意代码防范
应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断。
此项适用于网络设备、安全设备、操作系统,被测对象为数据库,此项不适用。
六、可信验证
可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心。
经核查,数据库未基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证。
七、数据完整性
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
可参考身份鉴别C项部分内容,具体简化查询代码如下:
select '加密策略',DECODE(VALUE,0,'不加密',1,'SSL加密',2,'SSL认证',VALUE) FROM V$PARAMETER WHERE NAME='ENABLE_ENCRYPT' UNION select '加密算法',DECODE(VALUE,'','空',VALUE) FROM V$PARAMETER WHERE NAME='COMM_ENCRYPT_NAME';
但还需要使用wireshark进行抓包验证,现是缺省配置抓包验证:
传输语句未加密:
账户密码已加密,第一次抓包:账户密码加密字段为:5f475ed66e75/5f475ed66e75473f6f
第二次抓包测试:账户密码的值为:44712ac6aa1d/44712ac6aa1d6001f7
达梦使用多级密钥管理方式保证数据库密钥的安全性。达梦安装时通过RSA生成1024位的公私钥对,用公钥加密叫做SVRKEY的服务器主密钥,私钥PRIKEY被单独加密存储在本地文件中。主密钥再加密叫做DBKEY的二级密钥。二级密钥用来加密全库加密的密钥、用户表空间的密钥、REDO日志的密钥等。除主密钥的加密使用RSA算法外,其它密钥包括PRIKEY都是用AES加密的。
达梦使用账户密码的登录方式进行身份认证。账户密码的是以密文形式传输的,其加密使用的密钥是在客户端和服务器建立会话时进行协商的,一次一密(上述抓包操作已验证)。