资源描述
VDNnt数据库设计说明书
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
VDN-nt项目
数据库设计说明书
版 本 修 订 历 史
版本
作者
修订原因
完稿日期
备注
1.0
张玉斌
2008—5—9
设计基线稿
目 录
1 数据库环境说明 4
2 数据库的命名规则 4
3 逻辑设计 4
4 物理设计 4
4.1 数据字典(即数据表汇总) 4
4.1。1 user (登录用户) 4
4.1。2 user_group (登录用户组) 5
4。1.3 customer (客户,企业或代理商或个人用户) 6
4.1。4 device (设备) 7
4.1.5 tunnel_template (隧道模板) 8
4.1。6 connect_policy (隧道策略) 10
4。1。7 connect(连接,即隧道) 10
4。1.8 trap_type (告警类型或告警策略) 11
4。1。9 trap(告警) 11
4。1。10 event(事件或日志) 12
4。1.11 device_otls (设备OTLS连接,即设备到VDN的连接信息,存放于内存) 13
4。1.12 vdn_state (VDN状态用于分布式特别是对称分布式的VDN选取,存放于内存) 13
5 安全性设计 13
5。1 防止用户直接操作数据库的方法 13
5.2 用户帐号密码的加密方法 13
5.3 角色与权限 14
6 优化 14
7 数据库管理与维护说明 14
模板编号及版本:RDM-T041 (V1.0) @ 研发管理部 第18页 共18页
1 数据库环境说明
VDN—NT数据库采用MySQL系统,运行在Linux操作系统上,使用C/C++为编程语言进行开发。VDN-NT项目只在VDN或专门数据库服务器上存放数据,再APN和管理客户端都不存放数据库。
2 数据库的命名规则
VDN—NT数据库命名为vdn。
3 逻辑设计
提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD).如果采用面向对象方法(OOAD),这里实体相当于类(class).
4 物理设计
4.1 数据字典(即数据表汇总)
4.1.1 user (登录用户)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
UserId
UBigInt(20)
PRI
NULL
用户标识,以’UUID’的ASCCI开始,Auto_increment
LoginName
varchar(32)
登录用户名(ASCII),用于登录用户标识,具有唯一性.
RealName
varchar(64)
用户真实姓名(GB2312),可以重复
GroupId
UBigInt(20)
用户组标识
CustumerId
UBigInt(20)
用户所属企业标识
Password
varchar(128)
用户登录密码(ASCII方式)
Status
Uint
用户状态,如欠费、密码过期等:
0 ——- 正常
1 —-- 密码过期
2 ——- 用户欠费
3 —-— 用户注销
ValidTime
Int
有效期,-1表示无限制
Tel
varchar (20)
Y
NULL
默认电话号码
OfficeTel
varchar (20)
Y
NULL
公司电话号码
MobileTel
varchar (20)
Y
NULL
移动电话号码
HomeTel
varchar (20)
Y
NULL
家庭电话号码
FaxTel
varchar (20)
Y
NULL
传真电话号码
Address
varchar (128)
Y
NULL
联系地址(GB2312)
ZipCode
varchar (20)
Y
NULL
邮政编码
Email
varchar (40)
Y
NULL
电子邮件
HomePage
varchar (64)
Y
NULL
公司主页
RegisterTime
dateTime
注册时间
LastChangeTime
dateTime
最近修改时间
LastLoginTime
dateTime
最近登录时间
4.1.2 user_group (登录用户组)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
GroupId
UBigInt(20)
PRI
NULL
用户组标识,以'GUID'开始, Auto_increment
GroupName
varchar(64)
1
用户组名(GB2312)
CustomerId
UBigInt(20)
企业标识,用户组所属企业范围,1标识OLYM公司,即所有管理企业
VdnRight
UBigInt(20)
管理VDN的权限:
Bit 0 —-- VDN日志查看
Bit 1 -—- VDN日志删除
Bit 2 --— VDN 系统升级
Bit 3 ——— VDN 数据库密码更改
Bit 4 —-- VDN root密码更改
UserRight
UBigInt(20)
管理用户和用户组的权限:
Bit 0 —-- 修改自己信息
Bit 1 —-- 查看其他用户
Bit 2 —-— 修改其他用户
Bit 3 -—— 增删用户
Bit 4 -—- 查看用户组
Bit 5 -—- 修改用户组
Bit 6 —-— 增删用户组
DeviceRight
UBigInt(20)
管理网元的权限:
Bit 0 -—— 查看网元
Bit 1 --- 修改网元信息
Bit 2 ——— 增删网元
Bit 3 —-- 重启网元
ServiceRight
UBigInt(20)
管理业务的权限:
Bit 0 —-- 查看连接
Bit 1 ——- 修改连接
Bit 2 --- 增删连接
Bit 3 —-— 查看隧道模板
Bit 4 ——— 修改隧道模板
Bit 5 ——- 增删隧道模板
Bit 6 -—- 查看隧道策略
Bit 7 —-- 修改隧道策略
Bit 8 --— 增删隧道策略
Bit 9 —-- 实时监控
TrapRight
UBigInt(20)
管理告警的权限:
Bit 0 —-- 查看告警
Bit 1 —-— 删除告警
Bit 2 —-— 查看告警类型
Bit 3 —-- 修改告警类型
Bit 4 —-— 增删告警类型
CreateTime
dateTime
创建时间
LastChangeTime
dateTime
最近修改时间
4.1.3 customer (客户,企业或代理商或个人用户)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
CustomerId
UBigInt(20)
PRI
NULL
用户组标识,以’CUID’开始,Auto_increment
CustomerName
varchar(64)
1
客户名称(GB2312)
AgentId
UBigInt(20)
所属代理商标识,如果是Agent客户,则与CustomerId相同
AdminId
UBigInt(20)
管理员用户标识
VDOMAIN
varchar (32)
所属虚拟域VDOMAIN
Representative
varchar (64)
法人代表(GB2312)
Address
varchar (128)
企业地址(GB2312)
UsedLicense
int
已经使用License数码
FreeLicense
int
有效Licence数目
Status
int
企业状态(如欠费等)
0 --- 正常
1 --— 企业欠费
2 -—— 企业注销
IsAgent
int
是否代理商:1是,0否
CreateTime
dateTime
创建时间
LastChangeTime
dateTime
最近修改时间
4.1.4 device (设备)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
DeviceId
UBigInt(20)
设备ID
DeviceName
varchar (64)
设备名称(GB2312)
DeviceType
int
设备类型:
1 —-- VDN
2 --— IPSEC APN
3 ——— IPSEC移动客户端
4 -—- SSL VPN
UserId
UBigInt(20)
使用用户(如移动客户端登录用户)Id
CustomerId
UBigInt(20)
所属企业标识
AgentId
UBigInt(20)
所属代理商标识
AdminId
UBigInt(20)
管理员标识
VDOMAIN
varchar (32)
所属虚拟域VDOMAIN
VHOST
varchar (32)
虚拟主机名VHOST
Password
varchar (128)
用于建立连接的秘密信息
MacAddress
Varbinary(18)
MAC地址
Status
Uint
设备状态:
1 --— 设备启动
2 -—- 设备登录VDN
3 --— 设备连接建立
4 -—— 设备密码过期
5 —-- 企业欠费
6 --- 设备无法连接
其他 ——— 设备异常代码
WanLinkMode
Uint
WAN连接模式:
0 -—- ADSL(PPPoE)
1 ——— DDN
2 —-- ISDN
4 --- Dialup
WanIp
Uint
WAN IP地址
WanSubnetMask
Uint
WAN子网掩码
WanGateway
Uint
WAN缺省网关
VLanIp
Uint
VLAN IP地址
VLanSubnetMask
Uint
VLAN子网掩码
VLanGateway
Uint
VLAN缺省网关
CreateTime
dateTime
创建时间
LastChangeTime
dateTime
最近修改时间
4.1.5 tunnel_template (隧道模板)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
TemplateId
Uint
模板标识
TemplateName
varhar(64)
模板名称(GB2312)
TemplateType
Int
模板类型:
0 -—- 自动隧道
1 —-— 手工隧道
CryptPolicy
Int
加密策略:
1 -—— 证书策略
2 ——— PSK策略
TunnelPolicy
Uint
隧道策略:
Bit 0 -—— 是否加密
Bit 1 -—— 是否启用PFS
Bit 2 ——- 是否启用Rekey
Bit 3 ——— 是否启用IP压缩
Bit 4 ——- 是否启用源地址检查
Bit 5 -—— 是否使用野蛮模式
Bit 6 -—— 是否隧道模式
IkeSaLife
Int
IKE SA Lifetime
IpsecSaLife
Int
IPSEC SA Lifetime
SaRekeyMargin
Int
SaRekeyFuzz
Int
SaKeyingTries
Int
DpdDelay
Int
DpdTimeout
Int
IkeCryptType
Int
IKE加密算法:
0 ——— 无
1 —-— 3DES
2 ——- AES
3 ——- Blowfish
4 --- Cast
5 -—— Serpent
6 --— Towfish
IkeHashType
Int
IKE 校验算法:
0 —-— 无
1 ——— MD5
2 -—- SHA
3 —-- SHA2_256
IkeModType
Int
IKE 模组:
0 --— 无
1 ——- mod768
2 --— mod1024
3 ——- mod1536
4 --- mod2048
5 -—- mod3072
6 ——- mod4096
7 ——— mod614
8 —-- mod819
EspCryptType
Int
ESP加密算法:
0 -—— 无
1 -—- 3DES
2 --— AES
3 ——- Blowfish
4 —-— Cast
5 --- Serpent
6 --— Towfish
EspHashType
Int
ESP 校验算法:
0 —-— 无
1 --- MD5
2 -—- SHA1
3 -—— SHA2_256
4 --- SHA2_512
CreateTime
dateTime
创建时间
LastChangeTime
dateTime
最近修改时间
4.1.6 connect_policy (隧道策略)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
PolicyId
Uint
策略标识
PolicyName
varhar(64)
策略名称(GB2312)
VDOMAIN
char(32)
所属虚拟域VDOMAIN
Toplogy
Uint
拓朴定义:
1:网状
2:星状
8:线状
TemplateId
Uint
隧道模板标识
MainDeviceId
UBigInt(20)
中心节点标识
SlaveDevices
varchar (512)
从动节点范围,可以用~符号表明范围,“,“表明多个
CreateTime
dateTime
创建时间
LastChangeTime
dateTime
最近修改时间
4.1.7 connect(连接,即隧道)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
ConnectId
Uint
连接标识
ConnectName
varhar(64)
连接名称(GB2312)
VDOMAIN
char(32)
所属虚拟域VDOMAIN
SourceDeviceId
UBigInt(20)
连接源设备标识
SourceDeviceName
Varchar(64)
连接源设备名称
TargetDeviceId
UBigInt(20)
连接目的设备标识
TargetDeviceName
Varchar(64)
连接目的设备名称
TemplateId
Uint
隧道模板Id
PolicyId
Uint
隧道策略Id
Status
Uint
连接状态:
0 —-- 正常连接
1 —-- 连接断开
NextHop
Uint
下一跳地址
CreateTime
dateTime
创建连接时间
LastConnectTime
dateTime
最近建立连接时间
LastDisconnectTime
dateTime
最近断开连接时间
4.1.8 trap_type (告警类型或告警策略)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
TrapTypeId
Uint
告警标识
TrapLevel
Uint
告警级别:
1 ——— 严重告警
2 ——- 故障告警
3 ——- 一般告警
4 -—— 提醒(通知)
5 --- 调试
TrapNotiftyType
Uint
告警通知方法:
1 -—— 日志(数据库存储)
2 ——- 对话框
3 —-- 声音
4 ——- 邮件
5 —-— 短信
4.1.9 trap(告警)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
TrapId
Uint
告警序号
DeviceId
UBigInt(20)
发起告警设备标识
TrapTypeId
Uint
告警类型
TrapTime
dateTime
告警时间
TrapLen
Int
告警内容长度
TrapContent
varbinary(512)
告警内容
4.1.10 event(事件或日志)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
EventId
Uint
事件(日志)标识
SourceId
UBigInt(20)
日志发起源(设备或用户)标识
EventType
Uint
日志类型:
1. OTLS连接请求;
2. OTLS连接成功;
3. OTLS连接失败;
4. OTLS连接断开;
5. 退出登录;
6. SNMP Startup;
7. 创建用户;
8. 修改用户;
9. 删除用户;
10. 创建用户组;
11. 修改用户组;
12. 删除用户组;
13. 创建客户;
14. 修改客户;
15. 删除客户;
16. 创建设备;
17. 修改设备;
18. 删除设备;
19. 创建隧道模板
20. 修改隧道模板
21. 删除隧道模板
22. 创建隧道策略
23. 修改隧道策略
24. 删除隧道策略
25. 创建连接
26. 修改连接
27. 删除连接
28. 创建告警类型
29. 修改告警类型
30. 删除告警类型
31. 删除告警
32. 删除日志
EventContent
varbinary(512)
日志内容
4.1.11 device_otls (设备OTLS连接,即设备到VDN的连接信息,存放于内存)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
ConnectId
Uint
连接序号
DeviceId
UBigInt(20)
发起连接设备标识
VdnIp
Uint
连接VDN IP地址
ConnectTime
dateTime
创建连接时间
4.1.12 vdn_state (VDN状态用于分布式特别是对称分布式的VDN选取,存放于内存)
FIELD
TYPE
NUL
KEY
DEFAULT
NOTE
DeviceId
UBigInt(20)
VDN设备ID
DeviceCount
Uint
连接的设备数目
UserCount
UInt
连接的用户(客户端)数目
VdnIp
Uint
VDN IP地址
5 安全性设计
5.1 防止用户直接操作数据库的方法
Ø 数据库访问帐号和密码都是在软件中写死的,用户无法知道数据库访问接口。
Ø 可以考虑用专门服务器存放数据库,该设备与其他VDN通过局域网连接,与外网无直接连接,这样就从更本上防止了用户的访问.
5.2 用户帐号密码的加密方法
本系统采用的SRP5密钥交换协议,在数据库中存放的是根据用户密码进行换算后的不可识别的秘密字串,从该字串无法反响生成用户密码的明文信息.
基于以上原因,当用户忘记密码后,无法取回原有密码信息,而只有重置为新的随机密码,用户用生成的随机密码登录后再进行密码更改.
5.3 角色与权限
提示:确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。
角色
可以访问的表与列
操作权限
角色A
角色B
6 优化
提示:分析并优化数据库的“时-空"效率,尽可能地“提高处理速度”并且“降低数据占用空间”.
(1)分析“时-空”效率的瓶颈,找出优化对象(目标),并确定优先级。
(2)当优化对象(目标)之间存在对抗时,给出折衷方案。
(3)给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。
优先级
优化对象(目标)
措施
7 数据库管理与维护说明
提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。
展开阅读全文