密级标记
访问控制是数据库安全管理的重要组成部分,KaiwuDB 开发者中心支持通过标记访问控制,使用户只能访问与自己安全级别相符的数据对象。标记,也称为标签,用于对数据库主体或者客体进行标识。标记包括密级和范围两个参数,其中密级是必选参数,范围为可选参数。更多相关信息,参见访问控制。
密级
创建密级
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
在数据库导航区,右键单击密级,然后选择新建密级。
在新建密级窗口,设置密级名称和密级级别,其中密级名称不支持使用冒号(
:
)和逗号(,
),密级级别的取值必须是整数值,范围是 0-9999。数字越大,密级越高,然后点击确定。
查看密级
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
- 在数据库导航区,双击待查看的密级,即可在属性页查看密级的名称和级别信息。
删除密级
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
在数据库导航区,右键单击待删除的密级,然后选择删除。
在删除对象窗口,点击是确认删除。
范围
创建范围
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
在数据库导航区,右键单击范围,然后选择新建范围。
在新建范围窗口,设置范围名称,然后点击确定。注意范围名称不支持使用冒号(
:
)和逗号(,
)。
查看范围
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
- 在数据库导航区,双击待查看的范围,即可在属性页查看范围的名称和级别信息。
删除范围
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
在数据库导航区,右键单击待删除的范围,然后选择删除。
在删除对象窗口,点击是确认删除。
标记
创建标记
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
在数据库导航区,右键单击标记,然后选择新建标记。
在新建标记窗口,设置标记名称,选择已创建的密级和范围,一个标记只能设置一个密级,但可以设置 0 个或多个范围,然后点击确定。
查看标记
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
- 在数据库导航区,双击待查看的标记,即可在属性页查看标记名称、密级信息和范围信息。
应用标记
应用标记即将标记应用于主体和客体,从而根据主体和客体标记的密级和范围来实现以下强制访问策略:
- 读访问控制(下读):主体能够对客体进行读访问,需要同时满足以下条件:
- 用户标记密级大于等于表标记密级和列标记密级。
- 客体范围是主体范围的子集。
- 进行行筛选时,主体标记密级需要大于等于行数据标记密级,并且行数据标记范围是主体标记范围的子集。否则系统会筛选过滤掉目标行。
- 进行列筛选时,主体标记密级需要大于等于列标记密级,并且列范围是主体范围的子集。否则,该列设置为列数据类型的零值。
- 写访问控制(上写):主体能够对客体进行写访问,需要同时满足以下条件:
- 主体标记密级小于等于客体标记密级。
- 主体标记密级小于等于行数据标记密级。
- 行数据标记范围是主体范围的子集。
- 主体范围是客体范围的子集。
具体操作,参见用户和角色、关系库、关系表和视图的标记管理章节。
删除标记
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
secadmin
角色的成员。默认情况下,secroot
用户属于secadmin
角色。
步骤
在数据库导航区,右键单击待删除的标记,然后选择删除。
在删除对象窗口,点击是确认删除。