金仓数据库KingbaseES 客户端工具安装
关键字:
KingbaseES、强制访问控制、人大金仓、KingbaseES
标记与强制访问控制
KingbaseES支持标记和强制访问控制,保护用户数据,防止非法窃取。强制访问控制(Mandatory AccessControl——MAC)与自主访问相比,MAC提供更严格和灵活的控制方式。MAC首先为所控制的主体和客体指派安全标记,然后依据这些标记进行访问仲裁。并且,只有主体标记能支配客体标记时才允许主体访问。标签和强制访问的定义如下:
标记
标记是由等级、范围和组三种组件构成,三种组件中等级为必须选项,范围和组可选,标记是可以比较的,三种组件的比较规则各不相同,其比较结果的含义是代表了数据的敏感程度。如果赋予用户某些标记,然后给数据再赋予标记,这样,将用户的标记和数据的标记进行比较,按照一定规则来决定用户是否可以对数据进行访问。
强制访问控制
用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。通俗的来说,在强制访问控制下,用户(或其他主体)与元组(或其他客体)都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该元组。
开启强制访问控制
- 加载插件:修改 kingbase.conf 文件中 shared_preload_libraries 参数,并重启数据库。
- 控制参数:
sysmac.enable_mac(boolean) :控制强制访问控制是否打开,由sso负责开关,默认为false,表示不启用强制访问控制。
sysmac.enable_col_mac(boolean) :控制列级强制访问控制是否打开,由sso负责开关,默认为false,表示不启用列级强制访问控制。
用户标记
用户为强制访问控制的主体,强制访问控制要求为主体配置对应的策略与标记。
主体的标记共五个,如下表所示
标记参数 | 标记名 | 说明 |
max_read_label | 最大读标记 | |
max_write_label | 最大写标记 | 表示的权限小于等于最大读标记 |
row_label | 默认写入标记 | 表示的权限小于等于最大写标记 |
min_write_label | 最小写标记 | 表示的权限小于等于默认写入标记 |
def_label | 默认可读标记 | 表示的权限小于等于默认写入标记 |
除此之外,在强制访问控制的使用过程中,系统会自动为用户计算出用户的当前可读标记(cur_read_label)。
当前可读标记用最小写标记和默认可读标记计算得出,等级取两者较小值,范围取两者交集,组取两者全部子组的交集。
设置用户标记
SYSMAC.SET_USER_LABELS(
policy_name TEXT,
username TEXT,
max_read_label TEXT,
max_write_label TEXT,
min_write_label TEXT,
def_label TEXT,
row_label TEXT
)
功能:
通过给用户授予会话标记,来设置用户的等级、范围和组。
参数说明:
policy_name:指定数据库中已经创建的安全策略名称。
username:指定用户名称。
后续5个参数为上文中表格对应参数。
权限控制与判断方法
Kingbase依据“向下读,区间写”的规则,判断用户的读写权限。