猿创征文|一幅长文细学GaussDB(五)—— 数据库安全基础
摘要:数据库安全管理是以保护数据库系统中的数据为目的,防止数据被泄露、篡改、破坏的行为发生。数据库系统存储这各类重要、敏感的数据,同时作为多用户的系统,要求为
5 数据库安全基础 摘要:数据库安全管理是以保护数据库系统中的数据为目的,防止数据被泄露、篡改、破坏的行为发生。数据库系统存储这各类重要、敏感的数据,同时作为多用户的系统,要求为不同权限的用户提供不同的服务。在本文中我们将会谈及数据库中采用的基本安全管理技术,包括访问控制、用户管理、权限管理、对象权限、CTS审计。 文章目录 5.1 数据库安全总览 5.1.1 数据库安全管理概述 定义:数据库安全管理是指保护数据免受授权的访问,防止重要信息泄露;避免因为硬件或者软件的错误导致数据的损失,避免误操作带来的损失。 5.1.2 数据库安全框架 5.1.3 数据库安全功能总览 说明:针对有意和无意的损害行为,GaussDB主要有以下几个安全防御措施: 5.2 访问控制 5.2.1 IAM概述 说明:统一身份认证是华为云提供权限服务管理的基础服务,可以帮助用户安全地控制华为云服务和资源的访问权限。IAM可以进行这样一个简单的理解:一个华为云账号购买了华为云产品,但是在一个公司中不可能大家要使用这个产品都去登录这个账号,故通过IAM可以在该账号下开多个子账号,子账号的权限由华为云的账号来控制。 5.2.2 IAM功能 说明:IAM提供的主要功能包括:精细的权限管理、安全访问、二次认证、通过用户组批量管理用户权限、区域内资源隔离、联合身份认证、委托其他账号或者云服务管理资源、设置账号安全策略。 5.2.3 IAM授权 说明:IAM为华为云其他服务器提供认证和授权功能;在IAM中创建的用户,经过授权后可以根据权限使用系统中的其他服务器。IAM的支持的所有服务权限,对于不支持使用IAM授权的服务,账号中创建的IAM用户无法使用该服务,请使用账号登录使用该服务。 5.2.4 IAM和GaussDB使用的关系 说明:如果需要对华为云账号下所拥有的的云数据库GaussDB进行精确的权限管理,可以使用统一身份认证服务,也就是IAM。通过IAM我们可以: 5.2.5 IAM使用GaussDB流程 步骤: 创建用户组并授权在IAM控制台创建用户组,并授予GaussDB只读权限“GuassDB ReadOnlyAccess”。创建用户并加入用户组在IAM控制台创建用户,并将其加入1中创建的用户组用户登录并验证权限新创建的用户登录控制台,切换至授权区域,验证权限 5.2.6 SSL加密通道 定义:安全套接子层(Secure Sockets Layer,SSL)是网络通信提供安全以及数据完整性的安全协议 必要性: 工作原理:SSL采用了对称加密算法和非对称加密算法。其中对称加密算法指的是加密和解密使用相同的秘钥,特点是算法公开、加解密速度快、效率高;非对称加密算法包含两个秘钥:公钥和私钥,公钥和私钥是一对,加密和解密使用不同的秘钥,特点是算法复杂度高、安全性更强、性能较对称加密差。 在SSL握手阶段,使用非对称加密算法协商会话秘钥;而在加密通道建立后,使用对称加密算法对传输数据进行加解密。 5.3用户权限管理 5.3.1 权限 说明:权限是执行某些特定SQL语句的能力以及访问或维护某一特定对象的能力。我们可以通过授予GuassDB(for MySQL)账户的权限来决定用户可以执行的操作;GuassDB权限在它们适用的上下文和不同从操作级别上有所不同: GaussDB服务器通过权限表来控制用户对数据库的访问,权限表存放在GaussDB数据库中,初始化数据库时会初始化这个权限表。 我们再次总结一下,实际上GuassDB的权限十分强大,大到整个服务器做权限控制,小到针对于服务器中的某个数据库对象做权限控制,而上面之所以谈到这么多,无非是为了区别系统权限和对象权限的区分。 5.3.2 权限表 说明:和MySQL一样,权限表也存在于某个数据库中;GaussDB(FOR MySQL)系统数据库包括几个权限表,这些权限表包含有关用户账户和其他权限的信息。下面列举几个常见的权限表: 权限表权限说明 user 用户账户、静态全局权限和其他非权限列 global_grants 动态全局权限 db 数据库级权限 tables_priv 表级权限 columns_priv 列级权限 procs_priv 存储过程和函数权限 5.3.3 用户 说明:既然要进行用户权限控制,那就一定要存在用户。数据库用户的主要用途是: 在连接数据库的时候,我们必须使用一个已经存在的数据库用户,并且一个用户可以建立多个连接。在没有创建用户的情况下,系统为我们创建了一个预置用户,我们也可以理解为管理员root。 我们可以使用create user来创建一个用户,需要注意的是,root可以创建一切用户,但使用普通用户创建用户时,需要注意该普通用户是否具有创建用户的权限,并且创建用户时需要同时指定用户名和密码;另外,root是不允许被创建的。 演示:
5.3.4 角色 说明:角色是一组命名的权限集合。我们可以这么理解,如果每次都给用户赋予一系列的权限多麻烦,直接将常用的一组权限定义为变量,每次需要使用这些权限时直接让用户使用该变量即可,那这一切就变得清晰简单起来。这个变量,就是角色。 意义:一个数据库可能有多个用户需要访问,为了管理方便数据库系统安全,可以先将权限分组,并授予给角色。对于不同权限级别的用户,可以将对应的角色授予用户,相当于批量授予用户需要的权限,而不需要逐个授予权限。 易混:我们说过,用户是某种身份来登录数据库,而角色是某些权限的集合。所以千万不要把这两者概念弄混。 演示:
5.3.5 用户角色权限三者关系 说明:用户可以通过定义角色来将一系列的权限封装在一起;角色可以赋予用户或其他其他角色,则用户或其他角色拥有了此角色的所有权限;既然角色可以将自身赋予其他角色,说明角色之间还存在继承关系。 5.3.6 授权 说明:授权是将权限或角色授予给用户或其他角色,同MySQL一样,使用grant语句可以授予权限。 提示:权限和角色的授予都要遵循最小化使用原则。也就是说,当你赋予权限或角色的范围足够用就行,不要故意把范围扩大。同样地,在不使用权限和角色的时候,我们需要及时回收。
5.4 CTS审计 5.4.1 CTS审计概述 说明:云审计服务是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 我们来稍微提下下它的过程:用于对云资源的所有操作,都会产生一系列的事件,而这些事件会上报给CTS,感觉上就像是一种特殊大的日志。CTS可以将所有发生的事件转储到OBS桶中,而后通过CTS对OBS桶中存储的事件进行查看。 5.4.2 CTS审计功能 说明:我们可以将5.4.1中提到的内容将CTS的功能总结为四点: 5.4.3 查看追踪事件 说明:云审计服务必须手动开启,我们可以登录华为云后进入控制台,在服务列表中选择云审计服务,进入云审计服务信息页面后开启云审计服务。 开启云审计服务后,我们可以看到,事件列表支持通过四个维度的筛选来查询对应的操作事件。 (编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |