oracle 12c 创建PDB用户即Local User

Oracle 12c PDB 创建教程
本文详细介绍了如何在 Oracle 12c 中创建可插入数据库 (PDB) 和本地用户,并提供了使用 SQL Developer 连接到 PDB 的步骤。

oracle数据库的结构是一个数据库实例下有许多用户,每一个用户有自己的表空间,即每一个用户相当于mysql中的一个数据库。

不久前下了oracle 12c的数据库,安装之后建user时才知道oracle12c 有一个很大的变动就是引入了pdb可插入数据库,而且在cdb中只能创建c##或者C##开头的用户,只有在pdb数据库中才能创建我们习惯性命名的用户,oracle称之为Local User,前者称之为Common User,于是乎查询相关的资料,得到以下解决方法:

1:进入PDB数据库

在12C安装时,会提示你是否安装可插接式数据库,我是安装了设为PDBORCL;如果你没有安装的话可以用以下语句创建一个可插入数据库

 create pluggable database pdborcl admin user pdbadmin identified by Learnin
g roles=(connect)
file_name_convert=
('E:\Databases\oracle\oradata\oraclekd\pdbseed',
'E:\Databases\oracle\oradata\oraclekd\pdborcl');
其中pdborcl是我创建的可插接式数据库,pdbadmin是创建的用户,Learning是密码。

file_name_convert换成相应目录就OK了

创建完成之后

alter session set container=pdborcl;
alter pluggable database pdborcl open;
grant dba to pdbadmin;

接下来关键来了,在oracle_home\product\12.1.0\dbhome_1\NETWORK\ADMIN目录下找到tnsnames.ora,用记事本打开,在
ORACLEKD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oraclekd)
    )
  )


之下添加

PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL)
    )
  )
PDBORCL就是你创建的可插入数据库,保存好之后重启oracle服务(貌似只重启监听程序就OK),打开sql*plus
用户名是PDBADMIN@PDBORCL 密码是Learning
OK,你现在已经创建了一个PDB用户了。现在你可以登录这个用户了
接下来是用sql developer创建连接的时候了,显然有sql developer这么强大的工具,怎么能不用呢
创建连接时连接名随意取,用户名就是PDBADMIN, 密码是Learning,选服务名称,填入PDBORCL
至此可以用sql developer操作PDB数据库了




                
<think>首先,用户的问题是基于提供的引用材料查找Oracle 12c创建数据库的方法。引用材料包括几个来源:[^1]到[^5],这些描述了创建数据库的步骤。 关键点从引用中提取: - 引用[^1]:提到使用DBCA(Database Configuration Assistant)或create database语句,前者更简单。 - 引用[^2]:介绍Oracle 12c的新特性,如CDB(Container Database)和PDB(Pluggable Database)。创建步骤包括理解CDB和PDB的关系。 - 引用[^3]:涉及Linux下的用户和组设置,比如创建oinstall组、dba组和oracle用户。 - 引用[^4]:讨论环境变量设置,使用oratab文件,和手动设置环境变量如ORACLE_HOME等。 - 引用[^5]:提到权限管理,如授予connect、resource、dba权限给用户用户的问题是:“我想查找使用Oracle 12c创建数据库的方法 请问Oracle 12c创建数据库的方法”。我需要基于这些引用构建一个有结构的回答。回答必须遵循系统级指令: - 使用中文回答。 - 行内数学表达式用$...$格式(但这里可能不涉及数学,所以可能不需要)。 - 独立公式用$$...$$单独成段(同样,可能不适用)。 - LaTeX语法正确(如果有公式的话)。 - 生成相关问题在回答末尾(§§相关问题§§)。 - 引用的段落末尾自然地添加引用标识,如[^1]。 回答结构需要清晰,帮助用户逐步解决问题。 组织回答步骤: 1. **引言**:简述Oracle 12c创建数据库的两种主要方法:DBCA和手动创建(SQL语句)。 2. **详细步骤**:基于引用,整合步骤。 - 准备环境:用户和组设置(从[^3])。 - 环境变量配置(从[^4])。 - 创建数据库:使用DBCA或手动方法(从[^1]、[^2])。 - 权限管理(从[^5])。 3. **CDB和PDB概念**:解释Oracle 12c的新特性(从[^2])。 4. **总结**:建议使用DBCA简化过程。 5. **相关问题**:生成几个相关问题。 确保引用标识自然添加:在描述每个部分的来源末尾添加[^n]。 最终回答结构: - 开头简述方法。 - 分步骤详细说明。 - 结束时添加相关问题。 生成的相关问题示例: 1. 如何在Oracle 12c中创建PDB(可插拔数据库)? 2. 使用create database语句创建数据库的详细步骤是什么? 3. 如何配置Oracle 12c的环境变量? 4. DBCA工具的优缺点有哪些? 5. 如何授予用户权限在新创建的数据库中? 现在,撰写回答。 </think>### Oracle 12c 创建数据库方法 Oracle 12c 提供了两种主要方法来创建数据库:使用图形化工具 DBCA(Database Configuration Assistant)或使用 SQL 命令(如 `create database` 语句)。DBCA 方法更简单快捷,适合大多数用户;手动方法则更灵活,但需要高级技能。Oracle 12c 引入了 CDB(Container Database)和 PDB(Pluggable Database)的概念,允许一个容器数据库容纳多个可插拔数据库,这改变了传统的实例-数据库关系[^2]。以下是基于引用材料的详细步骤,我将从准备环境到数据库创建逐步解释。 #### 1. **准备操作系统环境** 在创建数据库前,需确保操作系统(如 Linux)的用户和组已正确配置。这包括创建专用组和用户,以安全地运行 Oracle 实例。 - 使用 root 用户创建 `oinstall` 组(用于 Oracle 软件安装)和 `dba` 组(用于数据库管理员权限): ```bash groupadd oinstall groupadd dba ``` - 创建 `oracle` 用户,并将其添加到这些组中,同时设置用户密码: ```bash useradd -g oinstall -G dba oracle echo oracle | passwd --stdin oracle ``` 此步骤确保 Oracle 进程以受限权限运行[^3]。 #### 2. **配置环境变量** Oracle 需要正确的环境变量设置,以便数据库实例能正常启动和访问。这可以通过 `oraenv` 工具或手动修改配置文件实现。 - 使用 `oraenv` 工具动态设置变量(例如在 `/u01/app/oracle/product/12.1.0/dbhome_1/bin` 目录下运行): ```bash ./oraenv ``` 系统会提示输入 `ORACLE_SID`(数据库实例名)和 `ORACLE_HOME`(Oracle 安装目录)。 - 手动设置永久变量:编辑 `.bash_profile` 文件(在 `oracle` 用户的主目录下),添加以下内容: ```bash export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1 export ORACLE_SID=orcl # 替换为你的实例名,如 "orig" export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH ``` 然后加载配置文件:`source ~/.bash_profile`。这确保了 Oracle 命令(如 `sqlplus`)可用[^4]。 - 配置 `oratab` 文件以实现自动启动/关闭:确保 `/etc/oratab` 文件条目以 `Y` 结尾,例如 `orcl:/u01/app/oracle/product/12.1.0/dbhome_1:Y`,以便 `dbstart` 和 `dbshut` 工具能管理数据库[^4]。 #### 3. **创建数据库** Oracle 12c 的核心创新是 CDB/PDB 架构:CDB 作为容器承载多个 PDB(可插拔数据库),允许多租户部署。创建数据库时,可以选择创建 CDB(包含默认 PDB)或非 CDB(传统模式)。 - **推荐方法:使用 DBCA(Database Configuration Assistant)** - DBCA 是图形化工具,自动处理配置细节,如文件分配、内存设置和实例参数。 - 启动方式:以 `oracle` 用户登录,运行 `dbca` 命令。 - 步骤: 1. 选择 "Create a Database"。 2. 选择数据库类型:CDB(创建容器数据库)或非 CDB(遗留模式)。 3. 配置基本设置,如数据库名(如 `orcl`)、PDB 名(如 `pdb1`)、字符集和存储选项。 4. DBCA 自动生成脚本并执行创建,无需手动输入 SQL。完成后,数据库即可使用。 - 优点:简单快捷,适用于初学者或标准部署[^1][^2]。 - **手动方法:使用 SQL 语句** - 更复杂,适合高级用户或定制需求。需先启动实例,然后运行 `create database` 命令。 - 示例步骤: 1. 以 `oracle` 用户登录,启动 SQL*Plus:`sqlplus / as sysdba`。 2. 创建初始化参数文件(pfile 或 spfile),指定控制文件、数据文件位置。 3. 执行创建语句: ```sql CREATE DATABASE orcl USER SYS IDENTIFIED BY password USER SYSTEM IDENTIFIED BY password LOGFILE GROUP 1 ('/u01/oradata/orcl/redo01.log') SIZE 100M, GROUP 2 ('/u01/oradata/orcl/redo02.log') SIZE 100M MAXLOGFILES 5 MAXDATAFILES 100 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL; ``` 4. 完成后,运行 `@?/rdbms/admin/catalog.sql` 和 `@?/rdbms/admin/catproc.sql` 脚本创建数据字典。 - 注意:手动方法易出错,推荐仅在必要时使用[^1][^2]。 #### 4. **后续配置和权限管理** 数据库创建后,需授予用户权限以访问数据。 - 授予基本权限:连接到数据库(作为 sysdba),使用 SQL 授权: ```sql GRANT CONNECT, RESOURCE, DBA TO your_username; -- 授予连接、数据操作(DML)和 DDL 权限 GRANT UNLIMITED TABLESPACE TO your_username; -- 允许无限表空间使用 ``` 之后,可撤销高风险权限(如 `DBA`),以增强安全: ```sql REVOKE DBA FROM your_username; ``` 这确保用户拥有必要权限,同时限制潜在风险[^5]。 - 验证数据库:使用 `sqlplus your_username/password@orcl` 测试连接,并创建表测试功能。 #### 总结 Oracle 12c 创建数据库的主要方法是使用 DBCA,它简化了 CDB/PDB 的配置过程;手动方法则提供更多控制但增加复杂性。整个过程包括环境准备、变量设置、数据库创建和权限授予,通常需 30-60 分钟。建议初学者优先使用 DBCA,以避免常见错误[^1][^2][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值