ORACLE_OCP多租户之CDB与PDB的安全管理

ORACLE_OCP多租户之CDB与PDB的安全管理

  • 文章目标
    • 管理公共用户和本地用户
    • 管理公共和本地角色
    • 管理公共和本地权限
    • 管理公共用户的CONTAINER_DATA属性
    • 管理公共和本地概要文件

一、用户,角色和权限

  • 每个用户都可以在单个数据库的上下文中进行授权。
  • 角色是权限的集合。

在这里插入图片描述

二、本地用户,角色和权限

  • 每个本地用户都可以在单个PDB的上下文中进行授权。
  • 本地角色是用户登录时分配给特定PDB的权限集合。
  • 本地权限是在单个PDB上下文中授予的权限

在这里插入图片描述

三、创建一个本地用户

  • 具有适当权限的本地用户可以创建另一个本地用户。

  • 语法与非CDB相同。

    SQL> CONNECT system@pdb1
    SQL> CREATE USER george IDENTIFIED BY x;

  • 您不能在根容器中创建本地用户。

  • 本地用户仅连接到它所在的PDB。

    SQL> CONNECT george@pdb1

四、公共用户

在这里插入图片描述

五、创建一个公共用户

  • 公共用户可以创建公共用户和本地用户。

  • CONTAINER子句确定创建的用户的类型。

  • Create a common user in the root container:

    SQL> CREATE USER c##jim IDENTIFIED BY x
    2 CONTAINER=ALL;

  • Create a local user in a PDB:

    SQL> CREATE USER l_fred IDENTIFIED BY y
    2 CONTAINER=CURRENT;

  • 公共用户可以连接所有容器:

    SQL> CONNECT c##jim@cdb1 jim connection in root
    SQL> CONNECT c##jim@pdb1 jim connection in pdb1
    SQL> CONNECT c##jim@pdb2 jim connection in pdb2

六、公共和本地Schemas

在这里插入图片描述

七、公共和本地权限

  • 跨所有容器授予的权限是公共权限
  • 在单个PDB上下文中授予的权限是本地权限。
  • 本地用户只能在PDB上下文中授权。
  • 公共用户只能在其连接的PDB上下文中授权。
  • 连接到根容器的公共用户可以行使跨容器权限,例如创建公共用户。

八、授予公共和本地权限

在这里插入图片描述

九、授予和收回权限

  • 在根容器下授权:成为公共权限

    SQL> GRANT drop user TO c##_user CONTAINER=ALL;

  • 在本地授予权限:成为本地权限

    SQL> GRANT alter user TO local_user CONTAINER=CURRENT;

  • 授予本地权限.

    SQL> GRANT select any table TO local_user;

  • 收回公共权限.

    SQL> REVOKE drop user FROM c##_user CONTAINER=ALL;

  • 收回本地权限

    SQL> REVOKE alter user FROM local_user;

十、创建公共和本地角色

在这里插入图片描述

十一、创建公共和本地角色

  • 本地用户可以创建本地角色。

    SQL> CREATE ROLE L_HR CONTAINER=CURRENT;

  • 公共用户可以创建公共角色或本地角色。

    SQL> CREATE ROLE C##_R1 CONTAINER=ALL;

  • 可以将本地角色授予本地或公共用户。

  • 可以将公共角色授予本地或公共用户。

  • 可以将本地角色授予公共角色。

  • 可以将公共角色授予本地角色。

十二、向角色授予公共或本地权限/角色

在这里插入图片描述

十三、向用户授予公共和本地角色

在这里插入图片描述

十四、角色的授予和收回

  • 授予公共角色给公共用户.

    SQL> GRANT c##_role TO c##_user CONTAINER=ALL;

  • 授予本地角色给本地用户.

    SQL> GRANT local_role TO local_user CONTAINER=CURRENT;

  • 授予本地角色给公共用户.

    SQL> GRANT l_role TO c##_user CONTAINER=CURRENT;

  • 授予本地公共用户授予公共角色.

    SQL> GRANT c##_role TO c##_user CONTAINER=CURRENT;

  • 收回本地角色.

    SQL> REVOKE c##_role FROM c##_user CONTAINER=ALL;

  • 收回本地或公共角色.

    SQL> REVOKE local_role FROM local_user;
    SQL> REVOKE c##_role FROM c##_user CONTAINER=CURRENT;

十五、创建共享和非共享对象

  • 非共享表可以由公共用户和本地用户创建。
  • 公共用户创建的公共用户不能创建共享表。
  • 共享表可以由Oracle提供的用户创建。

十六、使公共用户可以访问特定PDB中的数据

在这里插入图片描述

十七、查找有关CONTAINER_DATA属性的信息

  • 查找有关默认(用户级别)和特定于对象的CONTAINER_DATA属性的信息,这些属性明确设置为DEFAULT以外的值。

在这里插入图片描述

十八、创建公共和本地概要文件(PROFILE)

在这里插入图片描述

  • 本地用户可以创建本地概要文件。

    SQL> CREATE PROFILE PROF_SCHEMA
    2 limit PASSWORD_LIFE_TIME 900
    3 CONTAINER=CURRENT;

  • 公共用户可以创建公共或本地概要文件。

    SQL> CREATE PROFILE C##_DEVELOPER
    2 limit PASSWORD_LIFE_TIME 3600
    3 CONTAINER=ALL;

  • 可以将本地概要文件分配给本地或公共用户。

  • 可以将公共概要文件分配给本地或公共用户。

十九、为用户分配公共和本地配置文件

在这里插入图片描述

二十、Profiles概要文件分配

  • 公共分配的公共概要文件.

    SQL> ALTER USER c##user PROFILE c##prof CONTAINER=ALL;

  • 将本地概要文件分配给本地用户.

    SQL> ALTER USER jim PROFILE developer;

  • 将本地概要文件分配给公共用户.

    SQL> ALTER USER c##user PROFILE developer;

  • 公共分配本地概要文件DEFALUT形式.

    SQL> ALTER USER c##user PROFILE DEFAULT CONTAINER=ALL;

  • 在本地分配本地概要文件DEFAULT形式.

    SQL> ALTER USER jim PROFILE DEFAULT
    2 CONTAINER=CURRENT;

  • 仅在本地修改概要文件的限制DEFAULT.

    SQL> ALTER PROFILE DEFAULT LIMIT password_file_time 1;

二十一、对定义者权限的限制

  • 本地用户不能在公共用户的架构上行使本地系统权限。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值