上一页 下一页

可见性等级

Enterprise Architect中的“可见性级别”功能提供了限制对模型某些部分的访问的功能。只有Pro Cloud Server托管的模型才能使用此功能。可见性级别通过利用Oracle 8+和Microsoft SQL Server 2016(以后版本)中包含的行级安全功能来实现。

行级安全性是一种安全功能,可控制哪些数据库用户可以访问数据库中的哪些数据行。传统的数据库安全性仅提供控制哪些用户有权读取,写入或删除数据到表级别的能力。由于行级安全功能由数据库实现,因此用户无法通过编写自己的脚本或数据库查询来绕过在应用程序级别实现的安全性。也就是说,数据库确保用户只能查看和更新​​他们有权访问的数据。

由于行级安全性是由数据库实现的功能,因此Enterprise Architect和Pro Cloud Server支持它的大多数配置都直接在数据库中执行,而无需更改应用程序代码库,这意味着可以减少错误。应用的观点。

数据库/应用用户

了解数据库和应用程序用户之间的区别非常重要。该简介提到可见性级别基于数据库用户权限。在Sparx System Cloud Server环境中,每个数据库管理器都定义了给定数据库的所有连接详细信息(包括用户和密码)。数据库用户(在连接详细信息中标识的用户)可见性级别基于。

这个概念不要与Enterprise Architect模型用户混淆; 即,访问启用安全性的模型时输入的用户标识/密码。这是一个应用程序用户。 

注意:Enterprise Architect的模型安全性不是强制性的,而所有DBMS都需要定义数据库用户才能访问数据库中的数据。

怎么运行的

除了正常权限之外,还允许数据库用户访问一个或多个可见性级别。新的列VIS_LVL(可见性级别)被添加到Enterprise Architect数据库中的24个关键表中。此字段存储查看/更新此记录所需的可见性级别。

对于24个表中的每个表,定义了一个安全策略,该策略确保每个数据库用户仅查看其分配的可见性级别有权查看的记录。

然后,数据库触发器用于维护所有子对象和元素的所有表中的VIS_LVL列的值。例如,在Enterprise Architect的项目浏览器中设置包的可见性级别会将所选包及其所有子项更新为输入的可见性级别。

注意:Sparx Systems提供的基本脚本支持20'级别的安全性(即1到20); 但是,可以通过手动更改在脚本开头插入T_VISIBILITYLEVELS表的行数来轻松调整。0级是一种特殊情况,代表默认值; 这意味着所有数据库用户(即使没有指定可见性级别的用户)也可以查看或更新此级别的记录。

缺点

与大多数情况一样,与未启用“可见性级别”的同一模型相比,“可见性级别”功能需要付出代价。SQL Server和Oracle的行级安全功能都会对数据库服务器施加额外的处理,只要选择数据就需要执行,这个额外的处理需要时间,多少时间取决于所选数据的类型和数量,所以非常很难估计。Sparx System的可见性级别的实现尝试以最有效的方式设计其解决方案,但是具有可见性级别的模型将比不具有可见性级别的模型执行速度更快是不可避免的。

学到更多