项目编号: S×××- <Single Sign On> | |
分 类: <模板>
|
数据库设计说明书 Version: Preview 1.0
项 目 承 担 部 门:
撰 写 人(签名):
完 成 日 期: 2009/4/4
本文档 使 用部门:□主管领导 ■项目组 □客户(市场) ■维护人员 □用户
评审负责人(签名):
评 审 日 期: |
卷 号 | |
卷内编号 | |
密 级 |
目 录
目 录
1. 引言
1.1 编写目的
1.2 背景
1.3 定义
1.4 参考资料
2. 外部设计
2.1 类型划分
2.2 标识符和约定
2.3 支持软件
2.4 结构设计
3. 运用设计
3.1 数据字典设计
3.2 安全保密设计
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