Oracle12C多租户管理用户、角色、权限

在Oracle12C中,用户权限的管理相对传统的 Oracle 单数据库环境稍有不同。在多租户环境中有两种类型的用户。

①:共同用户(Common User): 该用户存在所有容器 (根和所有的 Pdb) 中。

②:本地用户(Local User): 用户只有在特定的 PDB 中存在。同样的用户名中可以存在多个Pdb中创建,但它们之间没有关系。

同样,有两种类型的角色:如

①:共同角色(Common Role): 该角色在所有容器 (根和所有的 Pdb) 中。

②:本地角色(Local Role): 该角色只存在于特定的 PDB。可以在多个 Pdb中创建相同的角色名称,但它们之间没有关系。

一些 DDL 语句有扩充,以使他们能够定向到当前容器还是所有容器的CONTAINER子句。它的使用将在以下各节中进行演示。

注意:

在 cdb 中创建公共用户的时候, pdbs 中也会创建相同用户。若CDB 下 GRANT 命令赋权,如果赋权时未指定container=all,则赋权只在CDB中生效,并不会在PDB中生效,这个用户要能够访问PDB,需要切换到 pdb 再赋权。。若赋权时指定 container=all,则赋权在CDB中生效,也在PDB中生效。

1、在CDB中,给用户赋权时未指定container=all:

SQL> show con_name;

CON_NAME

------------------------------

CDB$ROOT

SQL> create user c##zhang identified by zhang;

SQL> grant create session to c##zhang;  --赋权给用户,这个时候开启另一个窗口使用该用户登录pdb的时候是没有权限的,如下:

[[email protected] ~]$ sqlplus c##zhang/[email protected]/testpdb

SQL*Plus: Release 12.2.0.1.0 Production on Tue Jul 18 15:15:51 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:

ORA-01045: user C##ZHANG lacks CREATE SESSION privilege; logon denied

----切换到pdb中,给用户赋权就可以登录了:

SQL> alter session set container=testpdb;

SQL> grant create session to c##zhang;

2、在CDB中,给用户赋权时指定container=all:

SQL> create user c##zhang1 identified by zhang;

SQL> grant create session to c##zhang1 container=all;

3、创建公共角色:

SQL> show con_name

CON_NAME

------------------------------

CDB$ROOT

SQL> create role c##role;   ---创建角色

SQL> grant select on dba_objects to c##role container=all;  --给这个角色加权限

SQL> grant c##role to c##zhang1 container=all;  --将角色赋给公共用户

SQL> alter session set container=testpdb;  ---切换到pdb

SQL> grant c##role to admin;   ---也可以把这个角色赋予pdb中的本地用户

4、本地角色

本地角色是以类似的方式到 pre-12 c 数据库创建的。每个 PDB 可以具有与匹配的名称,因为当地的作用范围仅限于当前 PDB 的角色。

必须满足以下条件。

条件:

①:必须连接到具有CREATE ROLE权限的用户。

②:如果您连接到公共用户,容器必须设置为本地 PDB。

③:角色名称为本地角色不必须与"C##"或"c##"作为前缀。

④:角色名称必须是唯一在 PDB 内。

⑤:本地角色可以赋权给公共用户(作用范围局限于pdb内操作,不影响CDB权限)或者本地用户。如:

SQL> show con_name;

CON_NAME

------------------------------

TESTPDB

SQL> create role pdb_role;    ---创建角色

SQL> grant select on dba_tables to pdb_role;  --给角色加权限

SQL> grant pdb_role to c##zhang;  --将角色赋予公共用户

SQL> grant pdb_role to admin;   ---将角色赋予本地用户

时间: 2025-01-05 23:45:34

Oracle12C多租户管理用户、角色、权限的相关文章

Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10

今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求为一个具体的功能页面 /// </summary> public class AdminActionMethod : Attribute { /// <summary> /// 页面请求路径 /// </summary> public string ActionUrl {

Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是翔通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基本不用了.还有最主要的原因就是锻炼下自己的能力.好了其他就不多说了,下面来看下我对这个项目的整体概述吧: 目录: 目录我以后会在这边添加上去的 一.Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理 基本设计 项目中使用到的工具: Visual Studio 2013,

java权限管理与用户角色权限设计

java权限管理与用户角色权限设计 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将

spring-boot-plus V1.4.0发布 集成用户角色权限部门管理

RBAC用户角色权限 用户角色权限部门管理核心接口介绍 Shiro权限配置 ?? Shiro权限配置 数据库模型图 ?? spring-boot-plus初始化SQL下载 获取验证码 可配置是否启用验证码 默认未启用 如已启用验证码校验,登陆时,需传入verifyToken和code 验证码演示 spring-boot-plus: # 是否启用ansi控制台输出有颜色的字体 enable-ansi: true # 是否启用验证码 enable-verify-code: true enable-v

RBAC用户角色权限设计方案

转自http://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统

扩展RBAC用户角色权限设计方案

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将

SCOM 2012知识分享-20:管理用户角色

适应平台:System Center 2012 RTM/SP1 ------------------------------------------------------------------------------------------------------ 在 System Center 2012 – Operations Manager 中,用户角色是用于分配访问监视数据以及执行操作所需的权限的方法. 用户角色旨在应用于用户组,这些用户需要具有对相同监视对象组的访问权限以及对此组执

java用户角色权限设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他

[转]扩展RBAC用户角色权限设计方案

原文地址:http://www.iteye.com/topic/930648 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用 户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版