网上找到大多数的表结构设计都是如下:
users表:
CREATE TABLE `users` (
`USER_ID` INT(10) UNSIGNED NOT NULL,
`USERNAME` VARCHAR(45) NOT NULL,
`PASSWORD` VARCHAR(45) NOT NULL,
`ENABLED` tinyint(1) NOT NULL,
PRIMARY KEY (`USER_ID`)
)
user_roles表:
CREATE TABLE `user_roles` (
`USER_ROLE_ID` INT(10) UNSIGNED NOT NULL,
`USER_ID` INT(10) UNSIGNED NOT NULL,
`AUTHORITY` VARCHAR(45) NOT NULL,
PRIMARY KEY (`USER_ROLE_ID`),
KEY `FK_user_roles` (`USER_ID`),
CONSTRAINT `FK_user_roles` FOREIGN KEY (`USER_ID`) REFERENCES `users` (`USER_ID`)
)
我的问题是:user_roles表中的USER_ID作为外键依赖users表,等于说把维护的交给了user_roles端,照这样额结构,假如roles只有3中admin、user、vistor,而user可能有无限多个呢,这其实就是典型的ManyToOne,应该把维护端交给many端。。。
关于spring security之前都是用的用户是基于配置的形式,数据量不多,现在要扩展user数量所以重新学习,就遇见这个疑问了,求解答。
相关推荐
### Spring Security 3.0 自定义表结构详解 在企业级应用开发中,Spring Security作为Spring框架的一个子项目,提供了一套完整的权限管理和安全性解决方案。它不仅能够处理身份验证(authentication)和授权...
自定义数据库表结构”的文档中,我们将探讨如何根据企业特定的需求来定制Spring Security的数据库表结构,并且如何初始化数据以及获取自定义的用户权限信息。Spring Security默认的表结构可能无法满足所有企业的...
在Spring Security中,角色继承允许我们创建一种层次结构,其中某些角色可以包含或扩展其他角色的权限。例如,我们可以定义一个"管理员"角色,它包含"用户"角色的所有权限,并可能有额外的特权。要实现角色继承,...
用户与角色之间的关系通常通过用户角色表来建立,而角色则赋予了用户特定的权限。 登录功能是Spring Security的基础,它提供了默认的登录页面和处理机制。你可以通过配置HttpSecurity来定制登录过程,例如设置登录...
总结来说,Spring Security通过用户表、角色表和用户角色桥接表实现了权限的动态分配。通过对这些表的合理设计和操作,我们可以轻松管理用户的权限,提供安全可控的业务环境。在实际应用中,还需要考虑如密码策略、...
首先说声抱歉,上次发布的项目不是源代码。我没看清楚就发布了。...(5)项目采用的是5张数据表结构。前台及后台各采用了5张数据库表。当然你也可以进行修改后合并。 (6)数据库采用MYSQL 备份文件在src文件夹下。
例如,可以创建一个名为`CustomUserDetailsService`的类,它连接到自定义的用户和角色表,查询用户信息,并将其转换为Spring Security的`UserDetails`对象。 **自定义登录页面** 默认的Spring Security登录页面是...
5. `authorities`:用户的权限信息,通常关联到另一个角色表。 **Spring Security配置** 1. **Web安全配置**:在Spring Security中,我们通过实现 `WebSecurityConfigurerAdapter` 类来自定义Web安全策略。可以...
这个SQL文件包含了数据库的结构和初始数据,可能是预先设计好的表和数据,用于初始化项目所需的安全相关数据,如用户账户、角色等。开发者可以通过导入这个SQL文件来设置好项目的基础数据环境。 综上所述,这个项目...
SpringSecurity是Java领域中一个强大的安全框架,专为构建安全的Web应用而设计。3.x版本是其历史上的一个重要里程碑,提供了丰富的功能和高度的定制性。本源码工程是针对SpringSecurity3.x的深入学习资源,包含了...
在处理与数据库交互方面,Spring Security提供了更强大的支持,包括长期的remember-me功能和基于数据库的角色与用户管理API。 24.2. 目标 在原有应用中,用户信息和资源访问控制已经在数据库中管理。目标是将现有...
在"springsecurity3 权限管理"这个主题中,我们将深入探讨SpringSecurity3如何处理用户、角色、权限和资源的管理。 1. **用户管理**: 用户是系统的使用者,SpringSecurity3通过`UserDetails`接口来定义用户信息,...
默认的表结构设计用于存储用户、角色以及权限信息。例如,“users”表存储用户信息,“authorities”表关联用户与权限,“user_authority”表则实现多对多的用户-权限关系。 ### 命名空间配置 #### web.xml配置 `...
通过这些表,SpringSecurity可以获取用户的权限信息,实现动态权限控制。 3. **用户认证**: - 用户认证涉及到用户凭证的验证,例如用户名和密码。SpringSecurity提供`UserDetailsService`接口,用于从数据库加载...
这通常涉及创建用户表、角色表以及它们之间的关联。执行这个SQL脚本将初始化数据库,为应用提供安全上下文。 `说明.txt`文件可能包含了项目的一些介绍、安装步骤或者配置说明,这对于理解和运行项目至关重要。建议...
接下来,我们来看看如何在MySQL中设计ACL相关的表结构。通常,你需要创建以下几个核心表: 1. `acl_class`: 存储数据对象的类信息,例如"com.example.MyEntity"。 2. `acl_object_identity`: 对应每一个数据对象,...
通过实现自定义的数据库表结构,可以更好地适应业务需求,包括初始化数据和获取自定义用户权限信息。 自定义登陆页面是Spring Security提供的另一个灵活性功能,允许开发者创建个性化的登陆界面以提升用户体验。...
3. **定义Role和Permission**:在数据库中设计角色和权限的表结构,可能包括用户角色关联表,以便于动态分配权限。 4. **编写RBAC逻辑**:可能包含自定义的`AccessDecisionVoter`,用于判断用户是否拥有执行操作所...
2. **角色表(Authorities)**:关联用户和角色。每个角色代表一组权限,例如"ROLE_USER"或"ROLE_ADMIN"。 3. **权限表(AuthoritiesDetails)**:存储具体的权限信息,比如可以访问的URL或特定的操作权限。 在...