openGauss学习笔记--安全性控制
收藏回复举报
openGauss学习笔记--安全性控制
发表于2023-11-08 22:58:07
0 查看

实验六 安全性控制 

(一)实验目的:

1. 了解OpenGauss提供的安全性手段。

2. 熟悉通过SQL对数据进行安全性控制。

3. 领会书上讲解的各种安全性方法。

4. 重点掌握授权和回收授权方法。

(二)实验内容:

1. 创建一些数据库用户,并理解数据库用户和角色之间的关系。

2. 利用DCL熟悉通过SQL对数据进行安全性控制(grant和revoke语句)。

(三)实验类型:演示 验证 □综合 □设计

(四)实验步骤记录、实验结果及分析(需要包含实验截图):

1.用户

通过CREATE USER创建的用户,默认具有LOGIN权限,且通过CREATE USER创建用户的同时,系统会在执行该命令的数据库中为该用户创建一个同名的SCHEMA。

cke_308.png 创建用户cxj,登录密码为:Caoxj@123

cke_309.png 查看用户列表

cke_310.png 为用户cxj追加权限CREATE ROLE,使其拥有创建角色的权限。

cke_311.png删除用户(删除方式为级联删除)

2.角色

角色是一个命名的权限的集合。当一组用户必须具有相同的存取权限时,使用角色定义存取权限,并对用户授权是方便的,可以简化授权,并有利于授权管理。

  1. 创建角色

cke_312.png创建一个名为Teller的角色。

  1. 使用角色授权

GRANT<角色列表>TO<用户/角色列表>

[WITH ADMIN OPTION]

cke_313.png可选短语 WITH ADMIN OPTION 允许获得角色授权的用户可以传播角色授权,缺省时不能传播。

  1. cke_314.png收回授予角色的权限。

3.将数据库对象授权给角色或用户。

cke_315.png 1)创建名为joe的用户,并将sysadmin权限授权给joe。

cke_316.png 2)撤销joe用户的sysadmin权限,然后创建tpcds模式,并给tpcds模式下创建一张reason表。

cke_317.png 3)将模式tpcds的使用权限和表tpcds.reason的所有权限授权给用户joe。

授权成功后,joe用户就拥有了tpcds.reason表的所有权限,包括增删改查等权限。

  1. cke_318.png将tpcds.reason表中r_reason_sk、r_reason_id、r_reason_desc列的查询权限,r_reason_desc的更新权限授权给joe。
  2. cke_319.png将数据库postgres的连接权限授权给用户joe,并给予其在postgres中创建schema的权限,而且允许joe将此权限授权给其他用户。

cke_320.png6)创建角色tpcds_manager,将模式tpcds的访问权限授权给角色tpcds_manager,并授予该角色在tpcds下创建对象的权限,不允许该角色中的用户将权限授予给其他人。

4.将用户或者角色的权限授权给其他用户或角色。

cke_321.png 1)创建角色manager,将joe的权限授权给manager,并允许该角色将权限授权给其他人。

cke_322.png 2)创建用户senior_manage,将用户manager的权限授权给该用户。

5.权限回收

cke_323.png撤销权限,并清理用户。

(五)问题及解决方法:

数据库用户和角色之间的关系:

角色是拥有数据库对象和权限的实体。在不同的环境中角色可以认为是一个用户,一个组或者兼顾两者。

在数据库中添加一个新角色,角色无登录权限。

创建角色的用户必须具备CREATE ROLE的权限或者是系统管理员。

(六)实验总结(实验总结与体会等):

数据安全性是为了保护数据库,防止未经授权的访问和恶意破坏和修改。为了保护数据库,需要在多个层面上采取安全性措施。从技术角度,数据库系统的主要安全措施包括用户标识与鉴别、存取控制、视图、审计和数据加密。

存取控制是数据库系统的主要安全措施。自主存取控制通过授权来防止未经授权和恶意访问。

本帖最后由 匿名用户2023/11/20 15:23:10 编辑

我要发帖子