Oracle19c常用操作

本文介绍了Oracle数据库中用户权限的管理,包括SELECT、GRANT等命令来赋予用户如CREATESESSION、CREATETABLE等权限。同时,讨论了12c引入的CDB(ContainerDatabase)和PDB(PluggableDatabase)概念,以及如何操作CDB和PDB,如创建、删除和切换容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- 查看当前登录用户的权限或角色
select * from user_role_privs;
-- 权限privilege
select * from session_privs;
-- 授予zhangsan用户创建session的权限,即登陆权限
grant create session to zhangsan;
-- 授予zhangsan用户创建session的权限,即登陆权限
grant create session to zhangsan;
-- 授予zhangsan用户使用表空间的权限
grant unlimited tablespace to zhangsan;
-- 授予创建表的权限
grant create table to zhangsan;
-- 授予删除表的权限
grant drop any table to zhangsan;
-- 插入表的权限
grant insert any table to zhangsan;
-- 修改表的权限
grant update any table to zhangsan;
-- 创建视图权限
grant create view to zhangsan ;

--创建角色
create role myrole;
--将创建session的权限授予myrole
grant create session to myrole;
--授予zhangsan用户myrole的角色
grant myrole to zhangsan;
--删除角色
drop role myrole;



-- Oracle 创建普通用户,并赋予权限

-- 连接数据库。
sys or system / manager as sysdba;
-- 创建普通用户peng: 
create user peng identified by pwd_oracle;

-- 删除用户
drop user peng;

-- 授予用户登录数据库的权限
grant create session to peng;

-- 授予用户操作表空间的权限:
grant unlimited tablespace to peng;

grant create tablespace to peng;

grant alter tablespace to peng;

grant drop tablespace to peng;

grant manage tablespace to peng;

-- 授予用户操作表的权限:(包含有create index权限, alter table, drop table权限)
grant create table to peng; 

-- 授予用户操作视图的权限: (包含有alter view, drop view权限)
grant create view to peng;

-- 授予用户操作触发器的权限: (包含有alter trigger, drop trigger权限)
grant create trigger to peng;

-- 授予用户操作存储过程的权限:(包含有alter procedure, drop procedure 和function 以及 package权限)
grant create procedure to peng;

-- 授予用户操作序列的权限: (包含有创建、修改、删除以及选择序列)
grant create sequence to peng;

-- 授予用户回退段权限:
grant create rollback segment to peng;

grant alter rollback segment to peng;

grant drop rollback segment to peng;

-- 授予用户同义词权限:(包含drop synonym权限)
grant create synonym to peng;

grant create public synonym to peng;

grant drop public synonym to peng;

-- 授予用户关于用户的权限:
grant create user to peng;

grant alter user to peng;

grant become user to peng;

grant drop user to peng;

-- 授予用户关于角色的权限:
grant create role to peng;

-- 授予用户操作概要文件的权限
grant create profile to peng;

grant alter profile to peng;

grant drop profile to peng;

-- 允许从sys用户所拥有的数据字典表中进行选择
grant select any dictionary to peng;

cmd sqlplus / nolog

SQL> conn / as sysdba;

SQL>create user username(zhangsan) identified by password(zhangsan);

系统权限分类【角色】

DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

CONNECT角色: --是授予最终用户的典型权利,最基本的

ALTER SESSION --修改会话

CREATE CLUSTER --建立聚簇

CREATE DATABASE LINK --建立数据库链接

CREATE SEQUENCE --建立序列

CREATE SESSION --建立会话

CREATE SYNONYM --建立同义词

CREATE VIEW --建立视图

RESOURCE角色: --是授予开发人员的

CREATE CLUSTER --建立聚簇

CREATE PROCEDURE --建立过程

CREATE SEQUENCE --建立序列

CREATE TABLE --建表

CREATE TRIGGER --建立触发器

CREATE TYPE --建立类型

--查看是否是容器服务器
show parameter enable_pluggable_database

CDB与PDB

oracle12c增加了CDB和PDB的概念。

CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。

在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

也就是说12c里面会在CDB下创建多个PDB,每个PDB类似于11g里面的实例,然后一个CDB下的各个PDB是相互隔离的。

本地用户

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

共同用户(Common User): 该用户存在所有容器 (根和所有的 Pdb) 中。常见的用户的用户名必须与"C##"或"c##"作为前缀,并包含唯一的 ASCII 或 EBCDIC 字符。

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

同样,有两种类型的角色。

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

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

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

使用idea连接Oracle19c PDB数据库

只要将URL中端口号后面的冒号,改成斜杠即可
jdbc:oracle:thin:@127.0.0.1:1521/orclpdb1

容器操作

--打开容器
alter pluggable database pdb名称 open;
--关闭容器
alter pluggable database pdb名称 close;
--保存容器当前状态,避免主机/orcl服务重启时,pdb自动关闭
alter pluggable database all save state;
--切换容器
alter session set container=pdb名称(指定容器);

-- 删除pdb,同时删除数据文件
SQL> drop pluggable database pdb_name including datafiles;

-- 删除pdb 默认保留数据文件
SQL> drop pluggable database pdb_name;
-- 删除pdb,但保留数据文件
SQL> drop pluggable database pdb_name keep datafiles;
-- 关闭PDB
SQL> alter pluggable database pdb2 close immediate;
-- 拨出PDB
SQL> alter pluggable database pdb2 unplug into '/home/oracle/pdb2.xml';

-- 删除PDB
SQL> drop pluggable database pdb2;
-- 删除PDB 使用参数 keep datafiles
SQL> drop pluggable database pdb2 keep datafiles;

-- 创建PDB
SQL> create pluggable database pdb2 using '/home/oracle/pdb2.xml' nocopy;
-- 打开PDB
SQL > alter pluggable database pdb2 open;
-- 查看插入的PDB是否有报错
SQL > select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONs order by name;

Oracle12c数据库创建pdb的3种方法



-- 根据seed创建pdb

CREATE PLUGGABLE DATABASE salespdb
ADMIN USER salesadm IDENTIFIED BY password
FILE_NAME_CONVERT = ('/disk1/oracle/dbs/pdbseed/',
'/disk1/oracle/dbs/salespdb/');

--说明:/disk1/oracle/dbs/pdbseed/为种子数据库数据文件存放路径,/disk1/oracle/dbs/salespdb/为新的pdb数据库文件存放路径。

-- 通过已知的pdb创建新的pdb

CREATE PLUGGABLE DATABASE newpdb FROM salespdb
FILE_NAME_CONVERT = ('/disk1/oracle/dbs/salespdb/', '/disk1/oracle/dbs/newpdb/')
PATH_PREFIX = '/disk1/oracle/dbs/newpdb';

-- 说明:此处没有明确的指定存储空间的限制,创建出的newpdb与salespdb是比较相似的。

-- 通过xml的方式创建pdb
CREATE PLUGGABLE DATABASE salespdb
USING '/disk1/usr/salespdb.xml'
SOURCE_FILE_NAME_CONVERT =
('/disk1/oracle/dbs/salespdb/', '/disk2/oracle/dbs/salespdb/')
NOCOPY
STORAGE (MAXSIZE 2G)
TEMPFILE REUSE;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值