项目编号: 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

用户标识

Email

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