计算机三级权限管理方法,多用户权限与数据管理的一种方法

多用户权限与数据管理的一种方法

分类:计算机等级

|

更新时间:2016-07-08|

来源:转载

多用户权限与数据管理的一种方法

1.引言  信息系统实现过程中经常遇到这样的情况:一个信息系统有很多组、多个的用户,而且各组用户具有的权限、所使用的数据都不相同。比如,一个学籍管理信息系统中,如果要实现学生学习成绩的发布与查询的话,应该针对不同的学生提供个人的成绩,然而由于学生人数很多,许多系统在实现成绩查询时并不针对某一个学生进行,而是输出所有的学生的成绩。在成绩查询这个例子中这个问题体现的不是很明显,但如果考虑学生在网上录入自己的选课情况的话,这种方式就会出现一些问题。比如,一些人可能恶意修改他人信息。因此需要对这一情况进行研究。

2.多用户的安全验证  为实现用户的验证,这种查询/编辑需要验证客户是否为合理的用户,需要在客户端输入用户名称以及相应的密码,然后在数据库端进行验证。对于通过身份验证的用户返回其所要求的数据。实现用户查询自己信息的方式通常情况下是在客户端的数据连接组件中进行限定,如果客户端为学生,他要查询相应的课程成绩,则在客户端完成课程成绩的SQL语句的装配,自动生成类似“select * from 课程成绩 where 学号=’Xuehao’”(其中Xuehao是客户端登录或者获取数据时提供的数据)

实现用户的验证,对于大型数据库来讲是连接数据库获取数据必须的一个步骤。传统方式是对不同的用户建立不同的用户帐号,并为他们分配适当的权限。而在多用户类型、多用户量的情况下,针对每一个用户建立一个帐号将涉及到很大的工作量:包括登录名称,数据库用户的建立,权限的分配,因此通常的方式是,利用数据库所提供的角色的概念,针对不同的用户类型建立不同的角色,将不同的用户赋予相应的角色,从而减少用户的权限分配管理,但这样仍然不能减少用户管理的工作量。对于学生成绩管理系统来讲,每年都有新生入学,需要创建数据库用户,同时又有学生毕业需要删除他们相应的数据库用户。这样维护数据库的工作,虽然可以通过计算机程序进行,但是用户管理的操作相对于表格的数据操作,费时费力。

针对这种情况,通常的办法是将用户不真正建立数据库用户,而是建立表格“用户表”,在表中存储其所属的角色,即相应的权限。这样对用户的维护就转变成对表格数据的维护,即方便程序的实现,又给用户以熟悉感。当然这样的管理需要结合存储过程来实现。

为实现用户的验证,这种查询/编辑需要验证客户是否为合理的用户,需要在客户端输入用户名称以及相应的密码,然后在数据库端进行验证。对于通过身份验证的用户返回其所要求的数据。实现用户查询自己信息的方式通常情况下是在客户端的数据连接组件中进行限定,如果客户端为学生,他要查询相应的课程成绩,则在客户端完成课程成绩的SQL语句的装配,自动生成类似“select * from 课程成绩 where 学号=’Xuehao’”(其中Xuehao是客户端登录或者获取数据时提供的数据)

实现用户的验证,对于大型数据库来讲是连接数据库获取数据必须的一个步骤。传统方式是对不同的用户建立不同的用户帐号,并为他们分配适当的权限。而在多用户类型、多用户量的情况下,针对每一个用户建立一个帐号将涉及到很大的工作量:包括登录名称,数据库用户的建立,权限的分配,因此通常的方式是,利用数据库所提供的角色的概念,针对不同的用户类型建立不同的角色,将不同的用户赋予相应的角色,从而减少用户的权限分配管理,但这样仍然不能减少用户管理的工作量。对于学生成绩管理系统来讲,每年都有新生入学,需要创建数据库用户,同时又有学生毕业需要删除他们相应的数据库用户。这样维护数据库的工作,虽然可以通过计算机程序进行,但是用户管理的操作相对于表格的数据操作,费时费力。

针对这种情况,通常的办法是将用户不真正建立数据库用户,而是建立表格“用户表”,在表中存储其所属的角色,即相应的权限。这样对用户的维护就转变成对表格数据的维护,即方便程序的实现,又给用户以熟悉感。当然这样的管理需要结合存储过程来实现。

但是这种将限制语句放在客户端来进行的方法有如下的不足:如果一个知道用户名称与密码的用户,构造了一个客户端,而在这个客户端中,他并不限制了查询修改数据的范围,这样他就可以对可以访问的表格的所有数据进行操作,而不再仅仅是他所被赋予的范围。

因此,更好的方式是将数据的限制放在数据库上进行,这样,即使是获取了一个用户名称、密码的用户也仅仅能对原用户相关的数据进行查询、修改,从而在一定程度上提高了数据的安全性。来源:-计算机三级考试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
### 回答1: Spring Boot 是一个非常流行的 Java 开发框架,而 Shiro 则是一个轻量级的身份验证和授权框架。使用 Spring Boot 和 Shiro 结合起来进行权限管理,可以非常方便地实现用户登录、权限验证等功能。 具体来说,我们可以通过在 Spring Boot 中配置 Shiro,来实现基于角色或权限的访问控制。通过使用 Shiro 提供的 Subject、Realm 等核心组件,我们可以轻松地完成用户身份认证、权限验证等操作。此外,Shiro 还提供了诸如密码加密、会话管理等功能,可以帮助我们更好地保护应用程序的安全性。 总的来说,结合 Spring Boot 和 Shiro 进行权限管理可以让我们更快速、更安全地开发应用程序。 ### 回答2: Spring Boot 是一种基于 Spring 框架的、用于快速构建应用程序的微服务框架,它可以轻松集成第三方组件,并且提供了一些便利的注解,让开发者可以更加专注于业务逻辑的实现。 而 Shiro 则是一种强大的 Java 安全框架,提供了身份验证、授权、加密等安全功能。Shiro 可以轻松地与 Spring Boot 进行集成,实现 permission-based access control(基于权限的访问控制),这意味着用户必须拥有特定的权限才能访问某些特定的资源。下面我们将详细讨论如何在 Spring Boot 中使用 Shiro 实现权限管理。 1. 添加 Shiro 依赖 首先需要在 Spring Boot 项目中添加 Shiro 的依赖。在 Maven 中,您需要将以下依赖添加到您的 pom.xml 文件中: ``` <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.2</version> </dependency> ``` 2. 配置 Shiro 在 Spring Boot 应用程序中,需要创建一个 ShiroFilterFactoryBean 和一个 SecurityManager bean。在 Shiro 过滤器工厂中,您需要指定访问控制规则以及 URL 的映射。这个过程可以通过编写 Shiro 配置文件来完成。下面是一个配置文件的示例。 ``` # shiro.ini [users] # 用户名 = 密码,角色1,角色2,角色3 admin = password, admin user = password, user [roles] # 角色定义 admin = * user = user:read [urls] # url 映射到角色 /login = anon /logout = logout /user/** = user /admin/** = admin ``` 3. 创建控制器 通过将 Shiro 的注解添加到控制器方法中,实现基于角色的访问控制。下面是一个示例控制器: ``` import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class UserController { @GetMapping("/user") public String user(Model model) { Subject subject = SecurityUtils.getSubject(); model.addAttribute("user", subject.getPrincipal()); return "user"; } @GetMapping("/admin") public String admin(Model model) { Subject subject = SecurityUtils.getSubject(); model.addAttribute("user", subject.getPrincipal()); return "admin"; } } ``` 在上面的示例中,user 和 admin 控制器方法都是基于角色进行访问控制。只有角色为 user 的用户才能访问 /user 路径,而只有角色为 admin 的用户才能访问 /admin 路径。 4. 创建登录页面 用户需要先登录才能访问有限资源。当用户访问有限资源时,Shiro 触发登录请求并将用户重定向到登录页面。下面是一个示例的登录页面。 ``` <form action="/login" method="POST"> <input type="text" name="username" placeholder="Username" required /> <input type="password" name="password" placeholder="Password" required /> <button type="submit">Login</button> </form> ``` 上面的登录表单将用户名和密码提交到 /login 接口,接口用于验证用户凭证及权限,并且在成功验证后重定向用户到其一开始请求的资源。若没有授权,则会将用户重定向到未授权的页面。 5. 对密码进行加密 在生产环境中,密码必须加密,以避免用户数据泄漏问题。下面是使用 Shiro 进行密码加密的示例代码: ``` import org.apache.shiro.crypto.hash.Md5Hash; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.crypto.hash.SimpleHash; import org.apache.shiro.util.ByteSource; public class PasswordUtil { public static String md5(String password, String salt) { return new Md5Hash(password, ByteSource.Util.bytes(salt), 2).toHex(); } public static String sha256(String password, String salt) { return new Sha256Hash(password, ByteSource.Util.bytes(salt), 1024).toHex(); } public static String simpleHash(String password, String salt) { return new SimpleHash("SHA-3-256", password, ByteSource.Util.bytes(salt), 1024).toString(); } } ``` 在上面的示例中,我们使用了三种不同类型的散列算法——MD5、SHA256 和 SHA-3-256。Shiro 使用 ByteSource 工具类来指明盐值。 在总结一下,Spring Boot 和 Shiro 的结合可以帮助我们快速构建一个安全可靠的 Web 应用程序,并且通过角色授权方式,可以防止非授权访问尝试。以上就是采用 Spring Boot 和 Shiro 实现权限管理的基本介绍。 ### 回答3: SpringBoot是一个用于创建基于Spring框架的Java应用程序的工具,它可以让开发人员更轻松地快速创建应用程序。而Shiro是一个强大而灵活的用于认证,授权和会话管理的Java框架。在SpringBoot中集成Shiro可以非常方便地完成权限管理。 Shiro具有许多功能,其中包括身份验证(Authentication)和授权(Authorization),这意味着Shiro可以处理登录和控制用户访问资源。Shiro还支持会话管理,在Web应用程序中可以使用Shiro管理会话,防止会话劫持和防止跨站点脚本攻击。Shiro的另一个优点是可以对加密和散列数据进行简单但强大的支持。此外,使用Shiro可以实现单点登录(Single sign-on,简称SSO),这对企业应用程序非常重要。 在SpringBoot中,集成Shiro非常容易。我们只需要在pom.xml中添加相应的依赖,然后在配置文件中设置Shiro的相关配置即可。配置Shiro认证和授权的最佳实践是将其分开,这样我们可以将认证设置单独控制,并在需要时轻松地将授权设置组合起来。如果我们需要更多的功能,Shiro通常提供了许多可插拔的组件和扩展。 在权限管理方面,Shiro非常适合企业应用程序,可以使用Shiro控制用户对资源的访问权限。我们可以为每个用户或角色设置权限,这就意味着我们可以非常细致地控制资源的访问权限。Shiro提供了各种各样的过滤器,我们可以使用这些过滤器在开发应用程序时精确地控制哪些用户可以访问哪些资源。 总之,SpringBoot和Shiro的集成可以帮助开发人员快速而轻松地构建功能强大的企业应用程序,实现身份验证,授权和会话管理等功能。Shiro的权限管理功能使得我们可以非常精确地控制用户对资源的访问权限,从而满足企业应用程序的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值