BS架构的用户权限管理

使用二进制位来控制权限,表设计 前言 最近在自己搭建一个管理后台,到了权限角色的时候,按常规涉及了以下几张表: 也是相当常见的模型了。 但是随机我发现一个不大不小的问题,当权限表/资源表稍微大一点的时候,角色关联权限tbl_role_permission 就会有大量数据 这才一个角色,很伤脑筋。于是我想到了上个项目中用到的二进制表示权限方法。 表设计 二话不说,看表 我们知道一个long类型,可以转为64位的二进制类型,也... 阅读详情
B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。

 

需求陈述

  • 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。

     

  • 可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。

     

  • 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。

     

  • 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。

关于设计

  借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。

我们先来分析一下数据库结构:

  首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

  这三个表之间的关系是多对多的,一个权限可能同时属于多个管理组,一个管理组中也可能同时包含多个权限。同样的道理,一个人员可能同时属于多个管理组,而一个管理组中也可能同时包含多个人员。如下图:

  由于这三张表之间存在着多对多的关系,那么它们之间的交互,最好使用另外两张表来完成。而这两张表起着映射的作用,分别是“actiongroup”表(以下简称“权限映射表”)和“mastergroup”表(以下简称“人员映射表”),前者映射了权限表与管理组表之间的交互。后者映射了人员表与管理组表之间的交互。如下图:

  另外,还需要一张表来控制系统运行时左侧菜单中的权限分栏,也就是“权限分栏表”,如下图:

  根据上面的分析,我们进行数据库结构设计,如下图:

  点击这里查看权限管理系统数据表字段设计

 

  为了能够进行良好的分析,我们将数据库结构图拆分开来,三张实体表的作用已经很清晰,现在我们来看一下两张映射表的作用。

一 权限映射表 如下图:

  首先,我们来了解一下权限映射表与管理组表以及权限表之间的字段关联。

  看图中的红圈,先看gorupid字段相关联,这种关联方式在实际数据库中的表现如下图:

  如图中所示,管理组表中“超级管理员”的groupid为1,那么权限映射表中groupid为1的权限也就是“超级管理员”所拥有的权限。

  使用groupid字段关联,是为了查到一个管理组能够执行的权限有哪些。但这些权限的详细信息却是action字段关联所查询到的。

  action字段相关联在数据库中的表现如下图:

  通过这种关联,才查询到权限映射表之中那些权限的详细信息。综合起来,我们就知道了一个管理组可以执行的权限有哪些,以及这些权限的详细信息是什么。

  或许你会问,为什么不使用actionid字段相关联呢?因为:

  • 权限表中的id字段在经过多次的数据库操作之后可能会发生更改。
  • 权限映射表中仅仅记录着一个管理组可以执行的权限。
  • 一旦 权限表中的id更改,那么 权限映射表中的记录也就更改了。
  • 一个管理组可以执行的权限势必将出错,这是非常不希望的。

  考虑到上面的情况,所以应该使用action字段相关联,因为:

  • 在 权限表中,id可能发生变化,而action字段却是在任何情况下也不可能发生变化的。
  • 权限映射表中记录的action字段也就不会变。
  • 一个管理组可以执行的权限就不会出错了。

二 人员映射表 如下图:

  我们来了解一下人员映射表与管理组表以及人员表之间的字段关联,如下图:

 

  看图中的红圈部分,先看groupid字段关联,这种关联方式在数据库中的表现如下图:

  如图,“超级管理员”组的groupid为1,我们再看人员映射表,admin属于超级管理员组,而administrator属于超级管理员组,同时也属于管理员组。

  使用这种关联方式,是为了查到一个管理组中的人员有谁。和上面一样,人员的详细信息是靠id字段(人员映射表中是masterid字段)关联查询到的。

  id字段(人员映射表中是masterid字段)关联表现在数据库中的形式如下图:

  一个人员可能同时属于多个“管理组”,如图中,administrator就同时属于两个“管理组”。所以,在人员映射表中关于administrator的记录就会是两条。

  这种关联方式才查询到管理组中人员的详细信息有哪些。综合起来,才可以知道一个管理组中的人员有谁,以及这个人员的详细信息。

  再结合上面谈到的权限表和权限映射表,就实现了需求中的“组”操作,如下图:

  其实,管理组表中仅仅记录着组的基本信息,如名称,组id等等。至于一个组中人员的详细信息,以及该组能够执行的权限的详细信息,都记录在人员表和权限表中。两张映射表才真正记录着一个组有哪些人员,能够执行哪些权限。通过两张映射表的衔接,三张实体表之间的交互才得以实现,从而完成了需求中提到的“组”操作。

  我们再来看一下权限分栏表与权限表之间的交互。这两张表之间的字段关联如下图:

  两张表使用了actioncolumnid字段相关联,这种关联方式在数据库中的表现如下图:

  如图所示,通过这种关联方式,我们可以非常清晰的看到权限表中的权限属于哪个分栏。

  现在,数据库结构已经很清晰了,分配权限的功能以及“组”操作都已经实现。下面我们再来分析一下需求中提到的关于权限管理系统的重用性问题。

  为什么使用这种数据库设计方式搭建起来的系统可以重用呢?

  • 三张实体表中记录着系统中的三个决定性元素。“权限”,“组”和“人”。而这三种元素可以任意添加,彼此之间不受影响。无论是那种类型的业务系统,这三个决定性元素是不会变的,也就意味着结构上不会变,而变的仅仅是数据。
  • 两张映射表中记录着三个元素之间的关系。但这些关系完全是人为创建的,需要变化的时候,只是对数据库中的记录进行操作,无需改动结构。
  • 权限分栏表中记录着系统使用时显示的分栏。无论是要添加分栏,修改分栏还是减少分栏,也只不过是操作记录而已。

  综上所述,这样设计数据库,系统是完全可以重用的,并且经受得住“变更”考验的。

总结:

  此套系统的重点在于,三张实体表牢牢地抓住了系统的核心成分,而两张映射表完美地映射出三张实体表之间的交互。其难点在于,理解映射表的工作,它记录着关系,并且实现了“组”操作的概念。而系统总体的设计是本着可以在不同的MIS系统中“重用”来满足不同系统的功能权限设置。

附录:

权限管理系统数据表的字段设计

  下面我们来看看权限管理系统的数据库表设计,共分为六张表,如下图:

action表:

  action表中记录着系统中所有的动作,以及动作相关描述。

actioncolumn表:

  actioncolumn表中记录着动作的分栏,系统运行时,左侧菜单栏提供了几块不同的功能,每一块就是一个分栏,每添加一个分栏,该表中的记录就会增加一条,相对应的,左侧菜单栏中也会新增机一个栏。

actiongroup表:

  actiongroup表记录着动作所在的组。

groupmanager表:

  groupmanager表记录着管理组的相关信息,每添加一个管理组,这里的记录就会增加一条。

mastergroup表:

  mastergroup表记录着管理员所在的管理组,由于一名管理员可能同同时属于多个组,所以该表中关于某一名管理员的记录可能有多条。

master表:

  master表记录着所有管理员的信息,每添加一个管理员,该表就会增加一条记录。

 
五表权限 设计基础:用户、角色、权限三大核心表,加上用户角色、角色权限两个映射表(用于给用户表联系上权限表)。这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。 大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。 各表的大体表结构如下: 1、用户表(UserInfo):Id、Use... 阅读详情

相关推荐

Java基于BS模式的教务管理系统(开题+源码)

研究基于BS模式的教务管理系统,其意义在于推动教育管理的现代化,提升教育管理的效率和公正性。通过这个系统,学生、教师和班级信息,以及学生档案、教师档案和课程信息等都可以进行统一、高效的管理,使得教育过程更加规范、有序。本研究旨在设计和实现一个基于BS模式的教务管理系统,以解决现有教务管理中的不足,提高教务管理的效率和质量。[6]赵子昂, 黄钧露. JAVA编程在计算机应用软件中的应用特征与技术研究[J]. 电子测试, 2021, (18): 83-84.第 5 阶段:2023年2月中旬完成系统测试。

qh605的博客 333

权限管理需要哪几张表

用户表、角色表、权限表、用户角色表、角色权限表

初心不忘、始终方得 1万+

Java权限管理的两种实现方式

基于角色的权限管理和基于资源的权限管理是实现Java权限管理的两种常见方式。基于角色的权限管理将权限授予角色,然后将角色分配给用户。除了基于角色的权限管理,还可以使用基于资源的权限管理。基于资源的权限管理是指为每个资源定义特定的权限,然后将这些权限授予用户。基于角色的权限管理是指将权限授予特定的角色,然后将角色分配给用户。每个角色都具有一组特定的权限,用户通过分配给他们的角色来获得相应的权限。在Java中,有多种方法可以实现权限管理,其中一种常见的方式是基于角色的权限管理。方式一:基于角色的权限管理。

HackDashX的博客 2350

实现业务系统中的用户权限管理--设计篇(转自http://www.noahweb.net/mail/2/Project.htm)

  B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权

NiuNIu's sPAcE 1万+

ASP.NET基于BS架构的权限管理系统设计

在现代信息管理系统中,权限管理是确保系统安全稳定运行的基石。对于开发者而言,构建一个既灵活又强大的权限管理系统是至关重要的任务。本章将概述ASP.NET权限管理系统开发的必要性,并为后续章节的内容打下基础。

weixin_42509720的博客 779

ASP基于BS架构的新闻管理系统设计与实现

本文还有配套的精品资源,点击获取 简介:本项目是基于ASP技术构建的Web新闻发布与管理系统,采用了浏览器-服务器架构,允许用户通过浏览器进行新闻的发布、管理与浏览,无需安装客户端软件。系统涵盖了用户登录权限管理、新闻分类管理、新闻发布与浏览以及数据库操作。源代码的提供有助于学习ASP编程原理和BS架构的应用。论文部分详细介绍了系统的架构设计、功能模块实现、数据库设计和安全...

weixin_42620563的博客 1330

【Java毕设选题推荐】基于SpringBoot的springboot基于BS招投标管理系统

开发语言:Java数据库:MySQL系统架构:B/S后端:SpringBoot(MyBatis)前端:Vue工具:IDEA,JDK1.8,Maven在当今数字化时代,企业之间的竞争愈发激烈,而招投标作为企业获取项目和资源的重要手段,其效率和透明度直接影响到企业的竞争力。随着信息技术的飞速发展,传统的招投标方式已经不能满足现代企业的需求,因此,开发一个基于SpringBoot的BS架构招投标管理系统显得尤为迫切。

IT源码社的博客 1253

Qt Design Studio 入门指南:从零开始打造炫酷UI(详细+实用+轻松上手)

本文是Qt Design Studio的详细入门指南,旨在帮助UI设计新手从零开始轻松打造炫酷界面。文章系统介绍了软件的核心概念、安装步骤、主界面解析,并通过创建一个完整的登录界面实例,手把手教学如何拖拽组件、设置属性、添加交互状态与动画。同时,分享了创建自定义组件、管理资源以及提升效率的实用技巧与常见问题解决方案,让读者能够快速上手并应用于实际项目开发。

devops8pract的博客 589

webkettle —— 专业级BS架构的ETL开发与调度工具

webkettle —— 专业级BS架构的ETL开发与调度工具 【下载地址】webkettle专业级BS架构的ETL开发与调度工具 webkettle是一款专业级BS架构的ETL开发与调度工具,旨在为用户提供高效、便捷的数据处理解决方案。它集成了模型设计、任务调度、定时执行、日志管理等七大核心模块,支持拖拽式数据流设计,...

gitblog_06772的博客 487

保姆级教程:在Ubuntu 22.04上从零安装SUMO并运行第一个交通仿真

本教程详细介绍了在Ubuntu 22.04系统上从零安装SUMO交通仿真软件并运行第一个仿真的完整流程。涵盖环境准备、PPA源安装、核心组件验证、首次仿真案例运行以及进阶配置技巧,特别针对netedit路网编辑器和地图格式转换等实用工具进行重点讲解,帮助用户快速掌握SUMO在交通仿真领域的应用。

weixin_30546189的博客 422

OpenEuler22.03 LTS下Zabbix7.0监控系统的容器化部署避坑指南(含Docker-Compose完整配置)

本文详细介绍了在OpenEuler22.03 LTS操作系统上容器化部署Zabbix7.0监控系统的完整流程,包括Docker引擎配置、Docker-Compose编排、网络模式选择及性能调优等关键步骤。针对OpenEuler环境下的特殊问题提供了解决方案,帮助用户高效搭建稳定可靠的监控系统。

python9snake的博客 268

shiro整合jwt+redis

前两篇文章我们整合了shiro+jwt无状态权限验证,这样只把tocken存储在前端,后端只验证Tocken是否合法。 考虑一个问题就是我们在设置了token过期时间之后会使前端用户退出在APP端的话很不友好,而且也不是很安全。 两种业务模式仅供参考: 1.BS架构时 我需要前端在国半小时自动退出,那么我们可以直接使用tocken过期自动退出。 2.在app端我不想让...

零度的博客 3112

从IMU数据到精准定位:手把手推导ESKF中的四元数运动学与误差状态方程

本文详细介绍了如何从IMU数据推导ESKF中的四元数运动学与误差状态方程,实现精准定位。通过分析误差状态卡尔曼滤波器的优势、四元数表示的必要性,以及IMU测量模型和运动学基础,提供了完整的数学推导和实现要点。适合机器人定位和自动驾驶领域的算法工程师参考,帮助优化导航系统性能。

weixin_30271335的博客 680

B/S与C/S的区别(详解)

主要区别: Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的 1.CS = Client - Server = 客戶端 - 服務器。例子: QQ,迅雷手机APP等等。只要有和服务器通信的都算。 2.BS = Browser - Server = 浏览器 - 服務器。 例子:所有的网站都是bs。 C/S系统架构 B/S系统架构 客户端要求 C/S客户端的计算机电脑配置要求较高。 B/S客户端的计算机电脑配置要求较低。 软件安装 C/S每一个客

仲浩的博客 1万+

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2135

从原理到落地:监控 SAP OData bgRFC 队列的全景实践指南

摘要(150字) 本文系统讲解SAP Gateway/Backend场景中bgRFC队列的监控方法。内容涵盖:1)监控必要性——确保异步可靠传输,及时识别失败消息;2)两种服务质量(EO/EOIO)对监控策略的影响;3)通过事务码SBGRFCMON和SPRO路径访问监控界面;4)关键授权S_BGRFC的配置要求;5)详细操作指南包括筛选条件和动作选项;6)标准巡检脚本;7)三个典型案例(认证错误、顺序阻塞、调度压力)的诊断与修复方案。全文提供完整的监控方法论和实战指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 288

企业级一款BS美食网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

开源免费分享企业级一款BS美食网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】可提供说明文档 可以通过*AIGC**技术包括:MySQL、VueJS、ElementUI、(Python或者Java或者.NET)等等*功能如图所示。可以滴我获取详细的视频介绍

rxy1176073894的博客 593

2. 第一个 SAP CDS View 源代码的详细解析:CDS View 和底层自动生成 SQL View 的关系讲解

笔者前一篇教程文章,带着大家在 ABAP 系统创建了一个最简单的基于sflight数据库表的 CDS View:本文对这简单的 14 行源代码背后的知识点进行详细讲解。CDS 全称是 Core Data Services,它是一种数据建模技术,帮助开发者以更直观和高层的方式去描述数据库中所需的数据结构。在一个典型的 SAP ABAP 开发场景里,CDS 经常被用来编写各种用于报表、接口或业务逻辑的数据视图。通常,这些视图包含一系列注解。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1026

JSP奖学金管理系统myeclipse开发sqlserver数据库bs框架java编程jdbc详细设计

一、源码特点 JSP 奖学金管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为 SQLSERVER2008,使用java语言开发,系统主要采用B/S模式开发。JSP奖学金管理系统myeclipse开发sqlserver数据库bs框架java编程jdbc-管理软件文档类资源-优快云下载一、源码特点JSP奖学金管理系统是一套完善的web设计系统,对理解JSPjava编程开发语

qq_251836457的博客 440

UE5实现物体高亮描边效果(含UE相关源码浅析)

UE5实现物体高亮描边效果

专注GIS开发 7335

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C/S 还是 B/S

1.CS = Client - Server = 客戶端 - 服務器。例子: QQ,迅雷,快播,暴風影音,各種網絡遊戲等等。只要有和服務器通訊的都算。 2.BS = Browser - Server = 浏览器 - 服務器。 例子:所有的网站都是bs。 C/S系统结构 B/S系统结构 区别: 1、客户端要求 C/S客户端的计算机电脑配置要求较高。 B/S客户端的计算机电脑配置要求较低。 2、软件安装 C/S每一个客户端都必须安装和配置专用的软件。 B/S最大的优点就是不用安装任何专门的软件,只要有一个浏

Ahhhhhaa的博客 209

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

基于Java+SpringBoot+Thymeleaf+Mysql在线外卖点餐系统设计与实现

基于Java+SpringBoot+Thymeleaf+Mysql在线外卖点餐系统设计与实现

杭州.黄老师 6458

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

企业级和BS架构宠物健康咨询系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

开源免费分享企业级和BS架构宠物健康咨询系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】可提供说明文档 可以通过*AIGC**技术包括:MySQL、VueJS、ElementUI、(Python或者Java或者.NET)等等*功能如图所示。可以滴我获取详细的视频介绍

2201_76027915的博客 855

基于springboot+vue实现在线图书销售系统演示【附项目源码+论文说明】

如今高校的图书馆的信息管理,已经成为了高校师生共同使用的一个重要的系统功能,通过高校的图书管理的管理,可以让无纸化的办公更加推进,也能让高校的师生通过这样的一个平台,就能借阅到喜欢的图书,让老师和学生对图书的借阅能够得到更加方便的使用。在高校中,图书管理人员,为师生借阅图书,并能提供一些图书的在线查询,方便学生和教师的查看查找,通过图书的借阅系统建立,一方面,可以方便管理,另一方面增加了学生阅读欲望,对于逾期不还的学生和教师,也制定了相应的惩罚措施。一次成功的测试是发现了至今为止尚未发现的错误的测试。

螺旋翻转大大雄 1013

基于JAVA中的spring框架和jsp实现学生社团管理系统项目【附项目源码+论文说明】

大学生社团,通常都是通过线下的方式进行管理的,学生将爱好兴趣,在线下进行组织,并且进行相关的兴趣的发布,并且能够让学生在线下进行相关的业务参与,大学生通过线下的方式组织和参与社团的活动,在实际情况中,不是很方便,所以建立一款线上社团管理系统,十分有必要,通过网上的社团信息的管理系统的建立,第一可以方便高校的社团的建立和活动的发布,也方便了学生在线进行社团的参与,第二能够丰富大学生的业余生活,加强学生的业余生活水平,所以开发一款关于大学生社团的网站,不但丰富学生的业余生活,也增强了学生的眼界。

螺旋翻转大大雄 861

java高校实验室预约管理系统

该实验室在线预约系统,采用了BS架构开发,利用jsp技术和mysql数据库进行了系统的开发,系统是一款典型的后台管理系统,分为四大权限用户,包括校教务员,实验室管理员,老师和学生用户,该计算机毕业设计系统功能介绍如下所示: 校教务员: 个人密码修改:对教务员的个人密码信息进行修改。 专业信息管理:针对学校的专业信息进行管理,包括专业名称和专业的介绍描述。 班级信息管理:班级信息包括班级名称和某专业下的某某班级信息的管理。 老师信息管理:对学校教师的信息进行管理,包括对教师信息的增删改查。 学生信息管理:针对

QQ58850198的博客 381
上一篇: PHP面试题目及其解答
下一篇: C++中的虚函数(virtual function) 出处:c++社区 (2)
comeon_data
博客等级 码龄22年 15粉丝 63原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值