当前位置:首页 » 文件传输 » 最新的访问控制模型
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

最新的访问控制模型

发布时间: 2023-03-08 23:02:18

㈠ windows操作系统的访问控制策略基于何种策略

自主访问控制。

自主访问控制指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并在随后的任何时刻将这些权限回收。

这种控制是自主的,也就是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限的某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。自主访问控制中,用户可以针对被保护对象制定自己的保护策略。



(1)最新的访问控制模型扩展阅读

访问控制的实现机制建立访问控制模型和实现访问控制都是抽象和复杂的行为,实现访问的控制不仅要保证授权用户使用的权限与其所拥有的权限对应,制止非授权用户的非授权行为;还要保证敏感信息的交叉感染。

以文件的访问控制为例对访问控制的实现做具体说明。通常用户访问信息资源(文件或是数据库),可能的行为有读、写和管理。用Read或是R表示读操作,Write或是W表示写操作,Own或是O表示管理操作。

之所以将管理操作从读写中分离出来,是因为管理员也许会对控制规则本身或是文件的属性等做修改,也就是修改我们在下面提到的访问控制表。

㈡ 国内重要的 Go 语言项目:TiDB 3.0 GA,稳定性和性能大幅提升

TiDB 是 PingCAP 自主研发的开源分布式关系型数据库,具备商业级数据库的数据可靠性,可用性,安全性等特性,支持在线弹性水平扩展,兼容 MySQL 协议及生态,创新性实现 OLTP 及 OLAP 融合。

TiDB 3.0 版本显着提升了大规模集群的稳定性,集群支持 150+ 存储节点,300+TB 存储容量长期稳定运行。易用性方面引入大量降低用户运维成本的优化,包括引入 Information_Schema 中的多个实用系统视图、EXPLAIN ANALYZE、SQL Trace 等。在性能方面,特别是 OLTP 性能方面,3.0 比 2.1 也有大幅提升,其中 TPC-C 性能提升约 4.5 倍,Sysbench 性能提升约 1.5 倍,OLAP 方面,TPC-H 50G Q15 因实现 View 可以执行,至此 TPC-H 22 个 Query 均可正常运行。新功能方面增加了窗口函数、视图(实验特性)、分区表、插件系统、悲观锁(实验特性)。

截止本文发稿时 TiDB 已在 500+ 用户的生产环境中长期稳定运行,涵盖金融、保险、制造,互联网, 游戏 等领域,涉及交易、数据中台、 历史 库等多个业务场景。不同业务场景对关系型数据库的诉求可用 “百花齐放”来形容,但对关系数据库最根本的诉求未发生任何变化,如数据可靠性,系统稳定性,可扩展性,安全性,易用性等。请跟随我们的脚步梳理 TiDB 3.0 有什么样的惊喜。

3.0 与 2.1 版本相比,显着提升了大规模集群的稳定性,支持单集群 150+ 存储节点,300+TB 存储容量长期稳定运行,主要的优化点如下:

1. 优化 Raft 副本之间的心跳机制,按照 Region 的活跃程度调整心跳频率,减小冷数据对集群的负担。

2. 热点调度策略支持更多参数配置,采用更高优先级,并提升热点调度的准确性。

3. 优化 PD 调度流程,提供调度限流机制,提升系统稳定性。

4. 新增分布式 GC 功能,提升 GC 的性能,降低大集群 GC 时间,提升系统稳定性。

众所周知,数据库查询计划的稳定性对业务至关重要,TiDB 3.0 版本采用多种优化手段提升查询计划的稳定性,如下:

1. 新增 Fast Analyze 功能,提升收集统计信息的速度,降低集群资源的消耗及对业务的影响。

2. 新增 Incremental Analyze 功能,提升收集单调递增的索引统计信息的速度,降低集群资源的消耗及对业务的影响。

3. 在 CM-Sketch 中新增 TopN 的统计信息,缓解 CM-Sketch 哈希冲突导致估算偏大,提升代价估算的准确性,提升查询计划的稳定性。

4. 引入 Skyline Pruning 框架,利用规则防止查询计划过度依赖统计信息,缓解因统计信息滞后导致选择的查询计划不是最优的情况,提升查询计划的稳定性。

5. 新增 SQL Plan Management 功能,支持在查询计划不准确时手动绑定查询计划,提升查询计划的稳定性。

1. OLTP

3.0 与 2.1 版本相比 Sysbench 的 Point Select,Update Index,Update Non-Index 均提升约 1.5 倍,TPC-C 性能提升约 4.5 倍。主要的优化点如下:

1. TiDB 持续优化 SQL 执行器,包括:优化 NOT EXISTS 子查询转化为 Anti Semi Join,优化多表 Join 时 Join 顺序选择等。

2. 优化 Index Join 逻辑,扩大 Index Join 算子的适用场景并提升代价估算的准确性。

3. TiKV 批量接收和发送消息功能,提升写入密集的场景的 TPS 约 7%,读密集的场景提升约 30%。

4. TiKV 优化内存管理,减少 Iterator Key Bound Option 的内存分配和拷贝,多个 Column Families 共享 block cache 提升 cache 命中率等手段大幅提升性能。

5. 引入 Titan 存储引擎插件,提升 Value 值超过 1KB 时性能,缓解 RocksDB 写放大问题,减少磁盘 IO 的占用。

6. TiKV 新增多线程 Raftstore 和 Apply 功能,提升单节点内可扩展性,进而提升单节点内并发处理能力和资源利用率,降低延时,大幅提升集群写入能力。

TiDB Lightning 性能与 2019 年年初相比提升 3 倍,从 100GB/h 提升到 300GB/h,即 28MB/s 提升到 85MB/s,优化点,如下:

1. 提升 SQL 转化成 KV Pairs 的性能,减少不必要的开销。

2. 提升单表导入性能,单表支持批量导入。

3. 提升 TiKV-Importer 导入数据性能,支持将数据和索引分别导入。

4. TiKV-Importer 支持上传 SST 文件限速功能。

RBAC(Role-Based Access Control,基于角色的权限访问控制) 是商业系统中最常见的权限管理技术之一,通过 RBAC 思想可以构建最简单“用户-角色-权限”的访问权限控制模型。RBAC 中用户与角色关联,权限与角色关联,角色与权限之间一般是多对多的关系,用户通过成为什么样的角色获取该角色所拥有的权限,达到简化权限管理的目的,通过此版本的迭代 RBAC 功能开发完成。

IP 白名单功能(企业版特性) :TiDB 提供基于 IP 白名单实现网络安全访问控制,用户可根据实际情况配置相关的访问策略。

Audit log 功能(企业版特性) :Audit log 记录用户对数据库所执行的操作,通过记录 Audit log 用户可以对数据库进行故障分析,行为分析,安全审计等,帮助用户获取数据执行情况。

加密存储(企业版特性) :TiDB 利用 RocksDB 自身加密功能,实现加密存储的功能,保证所有写入到磁盘的数据都经过加密,降低数据泄露的风险。

完善权限语句的权限检查 ,新增 ANALYZE,USE,SET GLOBAL,SHOW PROCESSLIST 语句权限检查。

1. 新增 SQL 方式查询慢查询,丰富 TiDB 慢查询日志内容,如:Coprocessor 任务数,平均/最长/90% 执行/等待时间,执行/等待时间最长的 TiKV 地址,简化慢查询定位工作,提高排查慢查询问题效率,提升产品易用性。

2. 新增系统配置项合法性检查,优化系统监控项等,提升产品易用性。

3. 新增对 TableReader、IndexReader 和 IndexLookupReader 算子内存使用情况统计信息,提高 Query 内存使用统计的准确性,提升处理内存消耗较大语句的效率。

4. 制定日志规范,重构日志系统,统一日志格式,方便用户理解日志内容,有助于通过工具对日志进行定量分析。

5. 新增 EXPLAIN ANALYZE 功能,提升SQL 调优的易用性。

6. 新增 SQL 语句 Trace 功能,方便排查问题。

7. 新增通过 unix_socket 方式连接数据库。

8. 新增快速恢复被删除表功能,当误删除数据时可通过此功能快速恢复数据。

TiDB 3.0 新增 TiFlash 组件,解决复杂分析及 HTAP 场景。TiFlash 是列式存储系统,与行存储系统实时同步,具备低延时,高性能,事务一致性读等特性。 通过 Raft 协议从 TiKV 中实时同步行存数据并转化成列存储格式持久化到一组独立的节点,解决行列混合存储以及资源隔离性问题。TiFlash 可用作行存储系统(TiKV)实时镜像,实时镜像可独立于行存储系统,将行存储及列存储从物理隔离开,提供完善的资源隔离方案,HTAP 场景最优推荐方案;亦可用作行存储表的索引,配合行存储对外提供智能的 OLAP 服务,提升约 10 倍复杂的混合查询的性能。

TiFlash 目前处于 Beta 阶段,计划 2019 年 12 月 31 日之前 GA,欢迎大家申请试用。

未来我们会继续投入到系统稳定性,易用性,性能,弹性扩展方面,向用户提供极致的弹性伸缩能力,极致的性能体验,极致的用户体验。

稳定性方面 V4.0 版本将继续完善 V3.0 未 GA 的重大特性,例如:悲观事务模型,View,Table Partition,Titan 行存储引擎,TiFlash 列存储引擎;引入近似物理备份恢复解决分布数据库备份恢复难题;优化 PD 调度功能等。

性能方面 V4.0 版本将继续优化事务处理流程,减少事务资源消耗,提升性能,例如:1PC,省去获取 commit ts 操作等。

弹性扩展方面,PD 将提供弹性扩展所需的元信息供外部系统调用,外部系统可根据元信息及负载情况动态伸缩集群规模,达成节省成本的目标。

我们相信战胜“未知”最好的武器就是社区的力量,基础软件需要坚定地走开源路线。截止发稿我们已经完成 41 篇源码阅读文章。TiDB 开源社区总计 265 位 Contributor,6 位 Committer,在这里我们对社区贡献者表示由衷的感谢,希望更多志同道合的人能加入进来,也希望大家在 TiDB 这个开源社区能够有所收获。

TiDB 3.0 GA Release Notes: https://pingcap.com/docs-cn/v3.0/releases/3.0-ga/

㈢ 熟悉这四种权限管理模型,产品迭代才能心里有数

从本质来说,无论何种类型的权限管理模型都可以抽象出三个基本的要素——即:用户(user)、系统/应用(system/application)、策略(policy)。

策略决定了用户和不同功能应用之间如何交互。反过来,也就是说,无论设计何种权限管理的模型,都是基于这三个基本要素来展开。

本文聚焦于目前应用最广的RBAC模型,但在这里提出三个基本要素,主要是为了帮助大家更好的理解权限管理,不至于在众多权限模型中迷失。

不同的公司或软件提供商,设计了无数种控制用户访问功能或资源的方法。但无论哪种设计,都可归到四种经典权限模型里——自主访问控制(DAC,Discretionary Access Control)、强制访问控制 (MAC,Mandatory Access Control)、基于角色访问控制 (RBAC,Role-based Access Control) 和基于属性访问控制 (ABAC,Attribute-based Access Control).

(我觉得翻译不好,但也找不到更贴切的。本文下面内容均以英文首字母来代替:DAC,MAC,RBAC,ABAC)。

本文主要就RBAC展开分析该模型的使用场景,以及如何基于该模型设计出合适的权限管理体系。但从文章便于理解的完整性的角度来考虑,会对DAC,MAC和ABAC进行简要的介绍。

DAC: 被操作对象,根据访问控制规则,来判断操作主体可对操作对象做哪些操作,比如只读或者是可写的权限。而自主的含义,则是拥有某种权限的用户,可以把权限赋予其他用户。

MAC: 被操作对象及用户两方均有各自的权限标识,用户能否对对象进行操作,取决于权限标识的对照关系。这种模型多用于等级制度明显,信息访问安全性要求高的场景,比如军事。

ABAC和RBAC有很多相通的地方,而且相比较而言ABAC实际上更灵活,符合未来发展的方向。因此,我们分析完RBAC后,再回过头来看ABAC。

Role-based Access Control,基于角色的权限控制模型。

顾名思义,给用户定义角色,通过角色来控制权限。 目前来说基于角色权限控制模型是应用较广的一个。特别是2B方向SAAS领域,应用尤其常见。

如上图示,用户拥有角色,且可拥有多个角色,而每个角色对应不同权限。

这样的好处是:不必为每一个用户去配置权限,拥有极大的灵活性和便利性。而当用户及权限的量级又大到另一个级别时,又引入了角色组和权限组概念,此处不做延伸,有兴趣的读者可以去搜些资料来看。

我们已经知道什么是RBAC模型了,在分析怎么来根据此模型来设计权限体系之前,我们再把这个模型要素进行拆分一下。

首先是:用户、角色、权限。

而权限,具体到某个软件来说,实际上包含两个方面。一个是菜单权限,另一个是数据权限。

不同的行业会有不同的使用场景,用户角色权限模型也会有不同程度上的变化。但归到底层来说,还是离不开上面我画的这个图。

上面这个图是从官网看到的,销售自动化领域十分典型的用户权限管理设计。

接下来,我们来抽象一个场景或者说案例,来辅助我们理解整个权限管理设计的过程。假设A公司是个中大型的生产制造公司,公司有OA、HR、CRM、ERP一系列管理软件。公司员工以万计,不同人员职责不同,体现在管理软件上,就是会需要使用不同的功能来完成工作。

帐号是人和软件进行交互时的一个身份的转化。账号的背后,代表了这个操作的人。账号管理应该是所有需要和系统交互的人的统一管理,包含基础信息,比如:这个人的名字,性别、手机号、部门以及其他属性。

角色管理,就是要从实际场景出发,比如:使用系统的企业或者团体,有哪几类使用的角色——也就是说,有哪几类人,是需要有不同的业务菜单和业务数据的。

说到底,角色管理,就是把这个角色对应的人平时工作需要的菜单、功能给划到一个组里。给这一个个的操作组定义不同的名称——即角色名称。

当然,这个角色管理除了规定了该角色的人平时可对哪些功能进行查看操作,还需规定这个角色,能看到哪些范围内的数据。也就是前面提到的,权限实际上包含的是菜单权限和数据权限两部分。

系统内功能控制的颗粒度越细,对使用者来说配置角色便越灵活,但对系统的设计者来说,系统的复杂度自然也会上升,成本也会增加。

因此,到底控制到哪一层级,就要视具体业务场景来定,比如:有些行业的系统,可能控制到一级菜单就可以(某些SAAS工具),但有些系统,不仅需要控制所有的子级菜单,每一个按钮操作,甚至还会需要控制到不同的字段(比如Salesforce的权限控制系统)。

不过,我们抽象出了基本的模型,根据实际业务再去发散,就不是最困难的事了。

至此,我们可以了解到:RBAC模型实际上能解决大部分的权限设计问题了。

那么,ABAC到底是什么呢?它存在的意义在哪里?关于未来的权限设计趋势,它能带给我们什么启发呢?

带着这些问题,我们先来看看到底什么是ABAC模型。

ABAC,Attribute-based Access Control. 基于属性的访问控制。而属性,总的来说有三类:用户属性、系统或应用被访问属性(数据和操作)、环境属性。

也就是说,系统根据一组或多组属性是否满足预设规则来动态的控制,谁可以访问哪些功能数据和操作。RBAC模型,其实可以看成是静态的、单组属性的ABAC模型。

用例子来理解这个模型就是:只有当用户角色为Admin,在工作时间内,且处在C栋大楼B实验室,才可以访问D文件。

实际上,ABAC是个可以以最细颗粒度来管理权限的模型。它可以让设计者,利用任何一个用户属性、环境属性,或者多个属性之间的交集、并集等来组合出动态的权限判断逻辑。

它是这么强大,既可以有效的帮助信息辨别能力差的用户过滤垃圾信息。也可以让商家用到营销广告填满你生活的每个角落却不自知。

但我一直坚信, 科技 绝对是让生活更美好。

权限管理,可能是每个2B产品经理需要面对的问题。但无论C端还是B端的产品,了解权限管理的设计法则,让自己更好的理解产品的架构,让产品的每次迭代都心里有数。

题图来自Unspalsh, 基于CC0协议。