IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> oracle 12c 容器数据库公共用户去访问pdb数据库 -> 正文阅读

[大数据]oracle 12c 容器数据库公共用户去访问pdb数据库

普通用户和公共用户

在oracle 12c之前数据库和数据库实例之间的关系是多对一或者一对一的关系,在oracle 12c 中引进了多租户的概念,实现了数据库实例可以对应多个数据库。cdb代表的是容器数据库,pdb代表的是可插拔数据库,实际上就是传统的数据库.而且现在也衍生了两种用户,一种是cbd用户,另外一种是pdb用户

pdb用户:只能访问可插拔数据库(pdb)
cbd用户:既可以访问cbd(根数据库),也可以访问pdb数据库(需要有权限)

创建cbd 用户

(1)打开sql plus
在这里插入图片描述
在这里插入图片描述

(2)用户登录 sys / as sysdba,查看当前容器是哪个容器数据库
在这里插入图片描述

在这里插入图片描述
可以看到我们目前处于一个cbd环境下。

(3)创建一个cdb环境下的公共用户, create user c##xxx identified by xxx;这里要注意,创建cdb用户必须要加上c##,否则会创建失败 如用户名未以C##或者c##开头,则会报错:ORA-65096: 公用用户名或角色名无效。
在这里插入图片描述
使用命令查看,创建的用户 select username ,con_id from cdb_users where username=‘C##XXX’;
在这里插入图片描述
注意:这里如果显示的不是很好的话,一列就换行,我们可以使用以下步骤:①set linesize = 200,② col username format a20;

可以看到上面的用户已经创建了,同样这个con_id=3代表的是第一个pdb数据库的id,说明这个用户也在pdb中创建了。

(4)给这个用户赋权让这个用户可以访问所有的容器:grant create session to c##xxx container=all;
在这里插入图片描述
(5)现在可以切换到pdb数据库 :
①查看容器数据库有哪些,可以看到状态,连接名称,是否开启。
在这里插入图片描述
②切换到pdb数据库,alter session set container = orclpdb;
在这里插入图片描述

③连接pdb: conn sys/orcl@pdb as sysdba(注意这个@pdb,如下图,连接到的服务。另外as sysdba也必须要加上,文件位置:D:\developsoftware\server\oracle12\oracle\app\product\12.2.0\dbhome_1\network\admin)
在这里插入图片描述
在这里插入图片描述
④给创建的cbd用户赋权:grant resource ,create session to c##xxx;
在这里插入图片描述
⑤使用cbd用户连接pdb数据库:conn c##xxx/xxx@pdb;
在这里插入图片描述
用pl sql去连接一下
在这里插入图片描述

在这里插入图片描述

如上图可以看到,我们也是可以连接上的。也可以看到这个这个数据库中有这个用户,如下图

在这里插入图片描述
⑥:先查看一下这个用户的权限 select * from dba_sys_privs where grantee=‘C##XXX’;
在这里插入图片描述
上面我们给用户权限,由于权限比较小,所以我们无法创建本地用户和表空间:所以我们给这个用户授予dba权限:
首先用sys/orcl@pdb登录上去,这个用户具有dba的权限
REVOKE DBA FROM 用户名(撤销权限)
授予权限:命令 GRANT unlimited tablespace to c##xxx;授权可以在表空间建表
GRANT CREATE USER TO C##XXX;授权可以创建用户;
GRANT CREATE TABLESPACE TO C##XXX;授权创建表空间
GRANT ALTER ANY TABLE TO C##XXX;授权可以修改表;
GRANT RESOURCE TO C##XXX;授权可以修改表(增删改查)
在这里插入图片描述

创建普通用户

①创建一个表空间(xxx代表表空间的逻辑名字,datafile:表空间的物理空间,size:初始大小,autoextend on next:初始空间用完后的扩展空间/每次,maxsize:最大空间)
create tablespace xxx datafile ‘d:\xxx.dbf’ size 50M autoextend on next 30m maxsize 100m;
在这里插入图片描述
②创建用户pdb create user xxx1 identified by xxx1 defalut tablespace xxx temporary tablespace temp account lock;(解释:xxx1是用户名和密码,可以自己指定,tablespace:用户所属的表空间,temporary tablespace:临时表空间,用来存储临时数据的,比如:排序数据,account lock,创建出来的用户是锁定装态)
在这里插入图片描述
③解锁创建的用户:alter user xxx1 account unlock;
在这里插入图片描述
④用户连接到pdb数据库:conn xx1/xx1@pdb;
在这里插入图片描述
这个时候我们登录的话,还是登录不上的,因为我们还没有给用户权限:
赋权:grant resource ,create session to xxx1;
grant restricted session to xxx1;
在这里插入图片描述
在这里插入图片描述

再次去连接:conn xxx1/xxx1@pdb
在这里插入图片描述

创建表

①创建表:create table a(a number(11,0),name varchar2(18));
在这里插入图片描述
②需要给用户进行表空间分配权限,才能进行操作表:alter user xxx1 quota unlimited on xxx;
或者:alter user xxx1 quota 5m on xxx; xxx代表表空间

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:59:31  更:2022-09-30 01:03:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:41:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码