go
if exists(select * from sysdatabases where name = 'HMS')
drop database HMS
go
------------------建库
create database HMS
on primary
(
name = 'HMS_data',
filename = 'D:\数据库\数据库存放包\HMS_data.mdf',
size = 5,
filegrowth=15%
)
log on
(
name = 'HMS_log',
filename = 'D:\数据库\数据库存放包\HMS_log.ldf',
size = 3,
filegrowth=10%
)
go
-----------------建表(不考虑项目表)
use HMS
go
-----建立用户信息表
create table users
(
uid varchar(10) primary key,--用户编号
uname varchar(20) not null,--用户姓名
upassword varchar(16) default('888888') not null,--用户密码
usex char(2) check(usex = '男' or usex = '女') not null,--用户性别
uage int check(uage>=16 and uage<=60) not null,--用户年龄
upid varchar(18) check(len(upid)=15 or len(upid)=18) not null,--用户身份z
uactive char(2) check(uactive = '是' or uactive = '女') not null,
uphono varchar(13) check(uphono like '____-_______' or uphono like '____-________' or len(uphono)=11 ),--联系电话
uaddress varchar(50) default('地址不详'),--家住地址
uremark varchar(100)--备注
)
go
---建立角色表
create table roles
(
rid varchar(10) primary key,--角色编号
rname varchar(20) not null,--角色名称
rremark varchar(100),--角色备注
)
go
--建立资源表
create table resources
(
sid varchar(10) primary key,--资源编号
sname varchar(20) not null,--资源名称
sremark varchar(100),--资源备注
)
go
-----建立用户角色表
create table users_roles
(
urid int identity(1,1) primary key,--用户角色编号 自动增长
uruid varchar(10) not null,--外键 引用用户表的主键
urrid varchar(10) not null--外键 引用角色表的主键
)
go
--建立角色资源表
create table roles_resources
(
rrid int identity(1,1) primary key,--角色资源编号 自动增长
rrrid varchar(10) not null,--外键 引用角色表主键
rrsid varchar(10) not null--外键 引用资源表主键
)
go
--添加约束
alter table users
add
constraint ck_pass check(len(upassword)>=6 and len(upassword)<=16),
constraint df_usex default('男')for usex,
constraint df_uactive default('是') for uactive
go
alter table users_roles
add
constraint fk_users_roles_users_uid foreign key(uruid) references users(uid),
constraint fk_users_roles_roles_rid foreign key(urrid) references roles(rid)
go
alter table roles_resources
add
constraint fk_roles_resources_roles foreign key(rrrid) references roles(rid),
constraint fk_roles_resources_resources foreign key(rrsid) references resources(sid)
go 因该可以解决你的问题
MySQL安装完成后,要想将数据存储到数据库的表中,首先要创建一个数据库。创建数据库就是在数据库系统中划分一块存储数据的空间。在MySQL中,创建数据库的基本语法格式如下所示:
CREATE DATABASE 数据库名称
在上述语法格式中,“CREATE DATABASE”是固定的SQL语句,专门用来创建数据库。“数据库名称”是唯一的,不可重复出现。
例如下面我们创建一个名称为itcast的数据库,SQL语句如下所示:
CREATE DATABASE itcast
执行结果如下所示:
如果看到上述运行结果,说明SQL语句执行成功了。为了验证数据库系统中是否创建了名称为itcast的数据库,需要査看数据库。在MySQL中,查看数据库的SQL语句如下所示:
SHOW DATABASES
使用SHOW语句査看已经存在的数据库,执行结果如下所示:
从上述执行结果可以看出,数据库系统中存在5个数据库。其中,除了我们之前创建的itcast数据库外,其他的数据库都是在MSQL安装完成后自动创建的。
创建好数据库之后,要想査看某个已经创建的数据库信息,可以通过SHOW CREATE DATABASE语句查看,具体语法格式如下所示:
SHOW CREATE DATABASE数据库名称
查看创建好的数据库itcast的信息,SQL语句如下所示:
SHOW CREATE DATABASE itcast
上述执行结果显示出了数据库itcast的创建信息,例如,数据库itcast的编码方式为utf-8。
权限系统提的最多的就是RBAC(Role-Base Access Control基于角色的访问控制)。所谓角色,其实就是权限的集合,某个角色就是某几个权限的结合。其目的是为了简化授权和鉴权的过程。
RBAC模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限解耦的目的。
将用户直接绑定到权限上去,如下图:
一个用户只充当一种角色,一种角色可以有多个用户担当。
一个用户可同时充当好几种角色,一种角色可以有多个用户担当。
如上图:对于左边的用户-角色对应,每个人只能同时拥有一种角色,但是同一个角色里边,可能会含有多个用户(如:李四和王麻子都是业务员);而右边的用户-角色对应,是在左边的基础上,增加了一个用户可拥有多种角色的情况(如:小马哥既是经理,也要负责财务的工作)。
一般公司的业务管理系统,都有数据私密性的要求:哪些人可以看到哪些数据,哪些人不可以看到哪些数据。这个时候,我们就需要把这些东西也考虑到你的权限体系内了。
假设上图是一家公司业务部门的组织架构图,公司要求你基于这个组织架构设计一个业务管理系统,并要求系统需要满足不同用户的数据私密性,比如:“张三”登录时,只能看到“张三”负责的数据;“张三”的领导登录时,能看到“团队A”的所有业务员负责的数据,但看不到其他团队业务员负责的数据等等。
在这种情况下,上一种权限体系就不适用了,但我们可以对其进行一些小改造后,即可达到数据管控的目的,如下图:
在“用户-角色-权限”的基础上,我们增加了用户与组织的关联关系,组织决定了用户的数据可视权限。但要想真正达到这个效果,我们还需要做2件事:
1、组织层级划分。如下图,我们需要对组织进行梳理,并划分层级。
2、数据可视权限规则制定。比如:上级组织职能看到下级组织员工负责的数据,而不能看到其他平级组织及其下级组织的员工数据等。
通过以上两点,系统就可以在用户登录时,自动判断要给用户展示哪些数据了!
第三种权限体系又是在第二种权限体系上进行优化的,增加了用户与岗位的关联关系,示意图如下:
增加岗位有以下几点好处:
1、识别用户的主要身份。一个人可能身兼多职(多个角色),但是他的主要职能是固定的,那怎么告诉系统用户的主要职能是什么呢?答案就是:通过岗位!拿上面的小马哥举例:小马哥虽然身兼经理和财务两种身份,但他的本职工作是“经理”,因此,他的系统岗位应该“经理”。当他登录时,系统会识别他的身份为“经理”,只不过这个“经理”刚好兼具了其他岗位的职能而已;
2、通过“组织-岗位”关联,快速甄别用户岗位。公司在不断地发展的过程中,系统的用户角色也会不断增加,当角色达到一定数量以后,管理员每新增一个用户都要花相当的时间去寻找角色。引入岗位后,可将组织和岗位、岗位和角色提前进行关联,配置账号时,管理员只要选定组织,系统就给出与该组织关联的岗位,而这些岗位,又是提前关联好角色的,选择起来,既方便又高效!
阿里云折扣快速入口
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)