|
项目编号: S×××- <Single Sign On> | ||||||
分 类: <模板>
|
数据库设计说明书 Version: Preview 1.0
项 目 承 担 部 门:
撰 写 人(签名):
完 成 日 期: 2009/4/4
本文档 使 用部门:□主管领导 ■项目组 □客户(市场) ■维护人员 □用户
评审负责人(签名):
评 审 日 期: | ||||||
|
目 录
1. 引言
1.1 编写目的
本文档旨在详细描述SSO系统中的数据库结构与设计。本文的读者可为SSO系统的开发者,也可以是SSO系统的维护都。
1.2 背景
当前企业信息建设进程中,各种各样的应用系统相互独立,用户在每套应用中都有独立的一套账号,这造成了用户在带来了一定的不便利,也不便于企业用户信息资源共享。为解决上述问题而开发的一套单点登录(Single Sign On)系统,需要一套底层数据库的支持。本文旨在对单点登录系统所使用的数据库进行详细阐述。
1.3 定义
SSO:Single Sign On,单点登录
CDM:Conceptual Data Model,概念数据模型
PDM:Physical Data Model,物理数据模型
1.4 参考资料
2. 外部设计
2.1 类型划分
按功能来说,该数据库表可分可以下两种类型:
ü 实现单点登录用的表:这些是SSO系统记录核心数据的表,主要有用户表、应用系统表、应用系统与用户对应关系表、SSO用户与应用系统用户映射表。
ü 鉴权表:这些是为鉴别用户权限而设计的表,有角色表与角色与用户对应关系表。
ü 日志类表:日志为记录系统运行状况的产生,对系统维护也有一定作用,有日志表与用户登录日志表。
2.2 标识符和约定
本数据库约定如下:
ü 本数据库中的所有表均以“sso_”为前缀,如用户表名称为sso_Account
ü 对于表示实体间对应关系的表以“sso_”前缀加两个实体名组成,如果用户表为Account,应用系统表为App,则用户与应用系统对应关系表名为sso_AccountApp
ü 本数据库的表中的字段均不加前缀
ü 本数据库的视图均以“sso_view_”为前缀
ü 本数据库中的存储均以“sso_sp_”为前缀
ü 本数据库中的函数均以“sso_fn_”为前缀
ü 本数据库中的参数均以“@”前缀
ü 本数据库约定所有要求概念数据模型(CDM)中的实体所对应的表以GUID为主键,其它表以int自增类型字段为主键。如:用户实体对应的用户表的主键为GUID类型,而用户实体与应用系统的对应关系的主键以int自增为主键类型
2.3 支持软件
本数据库支持Microsoft Sql Server 2005,MySql, SqlLite等数据库管理系统。
2.4 结构设计
本数据库物理数据模型(PDM)如下:
3. 运用设计
3.1 数据字典设计
1. 用户表
编号 |
1 |
表名 |
sso_Account | |
表描述 |
记录系统的用户 | |||
字段 |
类型 |
备注 | ||
ID |
uniqueidentifier not null primary key |
用户标识 | ||
|
varchar(50) not null |
用户Email地址 | ||
Password |
varchar(50) not null |
用户密码 | ||
PictureAddress |
varchar(225) null |
用户头像地址 | ||
Telephone |
varchar(20) null |
用户联系电话 | ||
CreateTime |
datetime not null |
添加用户时间 | ||
2. 应用系统表
编号 |
2 |
表名 |
sso_App | |
表描述 |
记录注册到SSO系统中的应用系统 | |||
字段 |
类型 |
备注 | ||
ID |
uniqueidentifier not null primary key |
应用系统标识 | ||
Name |
varchar(255) not null unique |
应用系统名称 | ||
Url |
varchar(200) not null |
应用系统的地址 | ||
Port |
int null |
应用系统的端口 | ||
CreateTime |
datetime not null |
添加应用系统时间 | ||
3. 应用系统与用户对应关系表
编号 |
3 |
表名 |
sso_AccountApp | |
表描述 |
记录应用系统所拥有的用户 | |||
字段 |
类型 |
备注 | ||
ID |
uniqueidentifier not null primary key |
应用与用户对应关系标识 | ||
AccountID |
uniqueidentifier |
用户标识 | ||
AppID |
uniqueidentifier |
应用系统标识 | ||
CreateTime |
datetime not null |
添加时间 | ||
ExpireTime |
datetime null |
用户使用应用的失效时间 | ||
4. SSO用户与应用系统用户映射表
编号 |
4 |
表名 |
sso_AccountAppUser | |
表描述 |
记录SSO用户与应用系统中的用户的映射关系 | |||
字段 |
类型 |
备注 | ||
ID |
uniqueidentifier not null primary key |
映射关系标识 | ||
AccountAppID |
uniqueidentifier not null |
用户与应用系统对应关系标识 | ||
Name |
varchar(20) not null |
应用系统中的用户登录名 | ||
Password |
varchar(50) null |
应用系统中的用户登录密码 | ||
CreateTime |
datetime not null |
添加记录时间 | ||
5. 角色
编号 |
5 |
表名 |
sso_Role | |
表描述 |
记录SSO系统中角色 | |||
字段 |
类型 |
备注 | ||
ID |
int identity primary key |
角色标识 | ||
Name |
varchar(255) not null |
角色名称 | ||
6. 角色与用户对应关系表
编号 |
6 |
表名 |
sso_RoleAccount | |
表描述 |
记录角色与用户的对应关系 | |||
字段 |
类型 |
备注 | ||
RoleID |
int not null primary key |
角色标识 | ||
AccountID |
uniqueidentifier not null primary key |
用户标识 | ||
CreateTime |
datetime not null |
记录时间 | ||
7. 日志表
编号 |
7 |
表名 |
sso_Log | |
表描述 |
记录系统运行日志 | |||
字段 |
类型 |
备注 | ||
ID |
int identity primary key |
日志标识 | ||
AccountID |
uniqueidentifier null |
执行操作的用户标识 | ||
Message |
varchar(1000) not null |
日志信息 | ||
CreateTime |
datetime not null |
记录时间 | ||
8. 用户登录记录
编号 |
8 |
表名 |
sso_AccountLoginLog | |
表描述 |
记录用户的登录记录 | |||
字段 |
类型 |
备注 | ||
ID |
int identity primary key |
标识 | ||
AccountID |
uniqueidentifier not null |
用户标识 | ||
IP |
varchar(30) not null |
登录IP | ||
CreateTime |
datetime not null |
登录时间 | ||
注:上述数据字典为在Microsoft Sql Server 2005中呈现的方式,数据类型uniqueidentifier在其它数据库产品中为varchar(36)。
3.2 安全保密设计
本数据库系统采用安全的用户名加口令方式登录。用户名的权限限制为只能进行基本的增删改查数据功能。
download: template_database_design_sample.rar