前页 | 后页 |
可见度等级
Enterprise Architect的“可见性级别”功能提供了限制对模型某些部分的访问的能力。只有Pro Cloud Server托管的型号才能使用此功能。可见性级别是通过利用Oracle 8+和Microsoft SQL Server 2016(及以后)中包含的行级别安全性功能实现的。
行级安全性是一项安全功能,可控制单个数据库用户可以访问哪些数据行。传统的数据库安全性仅提供了在表级别上控制用户权限的能力。也就是说,它们可以读取,写入或删除特定表中的数据吗?由于行级安全性功能是由数据库实现的,因此用户不可能通过编写自己的脚本或数据库查询来绕过应用程序级实现的安全性。该数据库确保用户只能查看和更新他们有权访问的数据。
鉴于行级安全性是由数据库实现的,因此支持Enterprise Architect和Pro Cloud Server大多数配置都直接在数据库中执行,而无需更改应用程序代码库,这意味着从错误中可以减少错误应用角度。
数据库/应用程序用户
重要的是要了解数据库用户和应用程序用户之间的区别。引言指出可见性级别基于数据库用户权限。在Sparx Systems Pro Cloud Server环境中,将定义每个数据库管理器及其与给定数据库的所有连接详细信息(包括用户ID和密码)。可见性级别是数据库用户(在连接详细信息中标识的用户)。
此概念不应与Enterprise Architect模型用户混淆。也就是说,访问启用了安全性的模型时输入的用户ID /密码。这是一个应用程序用户。
注意 : Enterprise Architect的模型安全性不是强制性的,而所有DBMS都需要定义数据库用户才能访问数据库中的数据。
这个怎么运作
除了普通权限外,数据库用户还被授予对一个或多个可见性级别的访问权限。新列VIS_LVL(可见性级别)已添加到Enterprise Architect数据库中的24个关键表中。此列存储查看或更新相应记录所需的可见性级别。
对于24个表中的每个表,都定义了一个安全策略,以确保每个数据库用户仅看到授权分配给他们的可见性级别可以查看的记录。
然后使用数据库触发器为所有子对象和元素维护所有表中VIS_LVL列的值。例如,在Enterprise Architect “浏览器”窗口中设置包的可见性级别会将所选包及其所有子级更新为输入的可见性级别。
注意: Sparx Systems提供的基本脚本支持20个“安全级别”(即1到20)。但是,可以通过在脚本开始时手动更改插入到T_VISIBILITYLEVELS表中的行数来轻松地进行调整。级别0是一种特殊情况,代表默认值。这意味着所有数据库用户(甚至那些没有指定可见性级别的数据库用户)都可以查看或更新该级别的记录。
缺点
与大多数情况一样,与未启用可见度级别的相同模型相比,启用可见度级别会产生一定的成本。每次选择数据时,SQL Server和Oracle中的行级安全性都会在数据库服务器上施加额外的处理。这种额外处理对数据库性能的影响很难估计,因为它取决于所选数据的类型和数量。 Enterprise Architect对可见性级别的支持在设计时考虑了效率;但是,启用“可见性级别”后,性能将不可避免地降低。