数据安全之路:Databend 用户策略指南

 在 Databend 中,我们致力于保护用户的数据安全。除了身份认证之外,我们还提供了多种访问策略,包括网络策略(Network Policy)、密码策略(Password Policy)和数据脱敏策略(Masking Policy)。让我们来了解一下 Databend 中的用户类型以及这些安全策略的应用。

用户类型

Databend 中的用户主要分为两类:

  • 配置用户(Configured User)
  • 自建用户(Created User)

配置用户

配置用户是在 Databend 配置文件(databend-query.toml)中定义的用户,通常具有管理员权限。这类用户适合用作管理员账号。

[[query.users]]
name = "default"
auth_type = "no_password"

自建用户

Created User 是通过 SQL 的 CREATE USER 命令创建的用户,对数据库对象的访问受到权限模型的限制。

CREATE [OR REPLACE] USER [IF NOT EXISTS] '<username>' IDENTIFIED [WITH <auth_type>] [BY <password>] [WITH <user_option>, ...]

用户认证

在用户认证阶段,Databend 会根据用户名获取相应的用户信息。

对于配置用户,认证阶段会授予其所有权限,并将默认角色设置为 account_admin。

对于自建用户,Databend 会从元数据中获取相应的用户信息。

Credential 分为两类:

JWT(JSON Web Token)

Password

Password Credential 支持 Sha256 和 DoubleSha1 两种加密方式,默认使用 Sha256。

注意:在 JWT Credential 下,如果用户不存在,Databend 会自动创建该用户。

网络策略

网络策略是一种配置机制,用于控制用户在系统内的网络访问。它允许用户定义一组规则,以控制特定用户允许和阻止的 IP 地址范围,从而有效地控制网络级别的访问权限。

如何使用网络策略

可以使用 ALTER USER 命令将网络策略与特定用户关联起来。一个网络策略可以与多个用户关联,只要它们符合相同的策略标准。有关在 Databend 中管理网络策略的介绍,请参阅网络策略文档。

以下示例展示了如何创建一个网络策略,并将其与用户关联以控制网络访问。

-- 创建网络策略
CREATE NETWORK POLICY sample_policyALLOWED_IP_LIST=('192.168.1.0/24')BLOCKED_IP_LIST=('192.168.1.99')COMMENT='Sample';-- 将网络策略与用户关联
ALTER USER sample_user WITH SET NETWORK POLICY='sample_policy';

以下示例演示了创建一个指定允许和阻止的IP地址的网络策略,并将此策略与用户关联起来以控制网络访问。网络策略允许所有从192.168.1.0到192.168.1.255的IP地址,仅拒绝 192.168.1.99。

-- Create a network policy
CREATE NETWORK POLICY sample_policyALLOWED_IP_LIST=('192.168.1.0/24')BLOCKED_IP_LIST=('192.168.1.99')COMMENT='Sample';SHOW NETWORK POLICIES;Name         |Allowed Ip List          |Blocked Ip List|Comment    |
-------------+-------------------------+---------------+-----------+
sample_policy|192.168.1.0/24           |192.168.1.99   |Sample     |-- Create a user
CREATE USER sample_user IDENTIFIED BY 'databend';-- Associate the network policy with the user
ALTER USER sample_user WITH SET NETWORK POLICY='sample_policy';

密码策略

密码策略可以增强系统安全性并使账户管理更加顺畅。该策略定义了创建或更改密码时的规则,包括长度、字符类型、年龄限制、重试限制、锁定时间和密码历史等方面。有关在 Databend 中管理密码策略的介绍,请参阅密码策略文档。

此示例建立以下 Password Policy 并为应用到数据库用户中:

  • DBA: 用于管理员用户,严格自定义每个 Password Policy 属性。
  • ReadOnlyUser: 用于普通用户,使用所有属性的默认值。
-- 使用自定义属性值创建 'DBA' Password Policy 
CREATE PASSWORD POLICY DBAPASSWORD_MIN_LENGTH = 12PASSWORD_MAX_LENGTH = 18PASSWORD_MIN_UPPER_CASE_CHARS = 2PASSWORD_MIN_LOWER_CASE_CHARS = 2PASSWORD_MIN_NUMERIC_CHARS = 2PASSWORD_MIN_SPECIAL_CHARS = 1PASSWORD_MIN_AGE_DAYS = 1PASSWORD_MAX_AGE_DAYS = 30PASSWORD_MAX_RETRIES = 3PASSWORD_LOCKOUT_TIME_MINS = 30PASSWORD_HISTORY = 5;-- 使用所有属性的默认值创建 'ReadOnlyUser'  Password Policy 
CREATE PASSWORD POLICY ReadOnlyUser;SHOW PASSWORD POLICIES;┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│     name     │ comment │                                                                                                 options                                                                                                 │
├──────────────┼─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ DBA          │         │ MIN_LENGTH=12, MAX_LENGTH=18, MIN_UPPER_CASE_CHARS=2, MIN_LOWER_CASE_CHARS=2, MIN_NUMERIC_CHARS=2, MIN_SPECIAL_CHARS=1, MIN_AGE_DAYS=1, MAX_AGE_DAYS=30, MAX_RETRIES=3, LOCKOUT_TIME_MINS=30, HISTORY=5 │
│ ReadOnlyUser │         │ MIN_LENGTH=8, MAX_LENGTH=256, MIN_UPPER_CASE_CHARS=1, MIN_LOWER_CASE_CHARS=1, MIN_NUMERIC_CHARS=1, MIN_SPECIAL_CHARS=0, MIN_AGE_DAYS=0, MAX_AGE_DAYS=90, MAX_RETRIES=5, LOCKOUT_TIME_MINS=15, HISTORY=0 │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

假设已经有一个名为 'eric' 的 DBA 用户,使用 ALTER USER 命令将 DBA Password Policy 应用于该用户:

-- 将 'DBA' Password Policy 应用于用户 'eric'
ALTER USER eric WITH SET PASSWORD POLICY = 'DBA';

创建一个名为 'frank' 的新用户,并使用 CREATE USER 命令应用 'ReadOnlyUser' Password Policy :

-- 注意:为用户 'frank' 设置的密码必须遵守关联的 'ReadOnlyUser' Password Policy 定义的约束。
CREATE USER frank IDENTIFIED BY 'Abc12345'WITH SET PASSWORD POLICY = 'ReadOnlyUser';

数据脱敏策略

数据脱敏策略用于控制对敏感数据的显示或访问规则和设置,从而保护数据的机密性。通过定义数据脱敏策略,用户可以在保护敏感数据的同时允许授权用户与数据进行交互。

考虑以下场景,我们希望只向经理展示表中的电子邮件地址:

idemail
2eric@example.com
1sue@example.com

对于非经理用户,电子邮件地址将被数据脱敏显示:

|id|email    |
|--+---------+
| 2|*********|
| 1|*********|

如何使用数据脱敏策略

在创建数据脱敏策略之前,请确保已正确定义或规划了角色及其相应的访问权限,因为策略的实施依赖于这些角色以确保数据数据脱敏的安全有效性。要管理 Databend 的用户和角色,请参阅用户与角色文档。

数据脱敏策略应用于列。因此,要为特定列应用数据脱敏,用户必须首先创建一个数据脱敏策略,然后使用 ALTER TABLE COLUMN 将该策略与预期列关联起来。建立关联后,数据脱敏策略将更贴合重要的数据隐私环境。

以下示例演示了如何通过角色选择性地显示或数据脱敏敏感数据的数据脱敏策略设置过程:

注意:数据脱敏策略是企业版功能。 如果希望体验该功能,需要获取许可证,请联系 Databend 支持团队。

-- 创建一个表并插入示例数据
CREATE TABLE user_info (id INT,email STRING
);INSERT INTO user_info (id, email) VALUES (1, 'sue@example.com');
INSERT INTO user_info (id, email) VALUES (2, 'eric@example.com');-- 创建一个角色
CREATE ROLE 'MANAGERS';
GRANT ALL ON *.* TO ROLE 'MANAGERS';-- 创建一个用户并将角色授予该用户
CREATE USER manager_user IDENTIFIED BY 'databend';
GRANT ROLE 'MANAGERS' TO 'manager_user';-- 创建一个数据脱敏策略
CREATE MASKING POLICY email_mask
AS(val string)RETURNS string ->CASEWHEN current_role() IN ('MANAGERS') THENvalELSE'*********'ENDCOMMENT = 'hide_email';-- 将数据脱敏策略与'email'列关联
ALTER TABLE user_info MODIFY COLUMN email SET MASKING POLICY email_mask;-- 以Root用户查询
SELECT * FROM user_info;id|email    |
--+---------+2|*********|1|*********|

结语

通过合理配置网络策略、密码策略和数据脱敏策略,Databend 提供了强大的数据安全保护机制,确保用户的数据得到妥善保护,并提高了系统的安全性和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571528.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全网最详细的 Ubuntu 18.04 安装Livox mid-360驱动,测试 fast_lio2

目录 一、前言 二、依赖的环境 三、 安装Livox-SDK2&#xff0c;fast_lio2 和 livox_ros_driver2 (1) 安装Livox-SDK2 (2) 安装 fast_lio2 和 livox_ros_driver2 四、mid-360 设备硬件设置 五、运行设备 六、topic信息查看 一、前言 Livox mid-360需要使用Livox-SDK2…

我们常用Linux命令总结

Linux作为一种自由和开放源代码的操作系统&#xff0c;广泛应用于各种计算机系统中&#xff0c;尤其是服务器环境。在Linux系统中&#xff0c;命令行是管理和操作系统的主要方式之一&#xff0c;熟练掌握常用的Linux命令对于系统管理员、开发人员和其他使用者来说都是至关重要的…

算法6.4-6.6DFS

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.27 Last edited: 2024.03.27 目录 算法6.4-6.6DFS 第1关&#xff1a;算法6.5采用邻接矩阵表示图的深搜 任务描述 相关知识 编程要求…

阿里CICD流水线Docker部署,将阿里镜像私仓中的镜像部署到服务器中

文章目录 阿里CICD流水线Docker部署&#xff0c;将阿里镜像私仓中的镜像部署到服务器中一、CICD流水线的初步使用可以看我之前的两篇文章二、添加部署任务&#xff0c;进行Docker部署&#xff0c;创建一个阿里的试用主机1、选择主机部署&#xff0c;并添加服务主机2、创建免费体…

OpenHarmony之媒体组件模块简介

源码 本文基于OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;3.2 Release源码foundation目录下的player_framework&#xff0c;在OpenHarmony 2.0 Release版本当中&#xff0c;这个模块的名字叫媒体组件模块&#xff0c;为了方便理解我们在本文中仍旧延…

Python Flask-Mail实现邮件发送

一、邮件发送的扩展 关于如何找到flask发送邮件的插件&#xff1f;&#xff0c;上一篇已经分享了如何找到第三方插件&#xff0c;也找到了插件flask-mail的使用文档&#xff0c;那我们就来实战吧 二、根据文档&#xff0c;总结发送邮件的流程 从文档中可以总结出发送邮件的步…

Java Web-Tomcat

Web服务器 Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是“提供网上信息浏览服务”。 Tomcat&#xff0c;是一个 HTTP 服务器。我们只需要在服务器中安装一个Web服务器如Tomcat&#xff0c;然后就可以将…

2024年3月GESP等级认证C++编程五级真题

2024年3月GESP认证C编程五级真题试卷 题目总数&#xff1a;27 总分数&#xff1a;100 选择题 第 1 题 单选题 唯⼀分解定理描述的内容是 ( ) ? A.任意整数都可以分解为素数的乘积 B.每个合数都可以唯⼀分解为⼀系列素数的乘积 C.两个不同的整数可以分解为相同…

3BUS213621-001通讯模块3BUS213621001

3BUS213621-001通讯模块3BUS213621001 3BUS213621-001通讯模块3BUS213621001 3BUS213621-001通讯模块3BUS213621001 产品编号&#xff1a;3BUS213621-001 ABB 型号名称&#xff1a;HKQCS PARTS ON LINE 目录描述&#xff1a;SBC 组件 ABB 型号名称&#xff1a;HKQCS PARTS …

28位驻华大使、公使参访苏州金龙 点赞刚刚全球发布的新V系大巴

3月26日下午&#xff0c;由外交部组织的“驻华使节团参访江苏”活动走进苏州金龙。来自28个国家和国际组织的驻华大使、公使参观了苏州金龙展厅&#xff0c;并试乘体验了苏州金龙全新V系大巴。外交部中国政府欧洲事务特别代表吴红波&#xff0c;外交部礼宾司、翻译司、非洲司、…

RXMA1 RK211 075 AC220V中间继电器 柜内安装板前接线 JOSEF约瑟

系列型号 RXMA1 RK 211 063中间继电器&#xff1b;RXMA1 RK 211 064中间继电器; RXMA1 RK 211 066中间继电器&#xff1b;RXMA1 RK 211 072中间继电器; RXMA1 RK 211 073中间继电器&#xff1b;RXMA1 RK 211 074中间继电器&#xff1b; RXMA1 RK 211 025中间继电器&#xff1b;…

智慧公厕的技术融合策略

智慧公厕是迎合现代城市发展需要的一项重要基础设施&#xff0c;其设计的技术融合策略在实现公共厕所泛在感知、互通互联、协同构筑智慧城市等方面起到了关键作用。本文将以智慧公厕源头实力厂家广州中期科技有限公司&#xff0c;大量精品案例现场实景实图实例&#xff0c;从物…