目录
1.基本概念
1.1.关于账号的概念
1.2.关于pdb和cdb的概念
3.创建用户
4.给用户创建权限
5.综合练习(很重要.正在写...)
6.参考资料
1.基本概念
1.1.关于账号的概念
在安装Oracle时,你需要记住设置的“全局数据库名”(默认为orcl) 和 口令,在以两种方式登录时:
用户名: sys(超级用户==sysdba) / system(管理员用户)Sys和system区别在于system不能创建表空间
system默认口令:manager
sys默认默认:change_on_install
使用SQL Plus登录数据库时,system使用密码manager可直接登录。
但如果是sys用户,密码必须加上as sysdba,即完整密码为:change_on_install as sysdba
如果是用工具Oracle SQL Developer登录sys用户,那么需要先用sqlplus登录sys,然后修改密码,之后就用这个密码连接既可以
修改命令:alter user sys identified by 123456
1.2.关于pdb和cdb的概念
Oracle12c 中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB 全称:Container Database)承载多个可插拔数据库(PDB 全称:Pluggable Database)。cdb相当于操作系统,调用并管理各个pdb。pdb相当于真正提供业务需求的数据库实例。我们可以用sqlplus命令登录sys用户查询一下:
select name , open_mode from v$pdbs;
可以看到默认创建了两个pdb可插拨数据库:
NAME OPEN_MODE
------------------------------ -----------------------
PDB$SEED READ ONLY
PDBORCL READ WRITE
可以看到有两个pcd数据库。
oracle 12c安装后还创建了cdb。
2.创建表空间
创建表空间是分CDB下的表空间和PDB下的表空间的。
查看表空间SQL如下:
select tablespace_name from dba_tablespaces;
创建数据表空间SQL如下:
create tablespace user_data -- 表空间名
datafile 'D:\APP\ORACLE\ORADATA\ORCL\bamboo_data.DBF' -- 表空间存储文件位置
size 50m -- 文件大小
autoextend on
next 50m maxsize 20480m
extent management local;
创建临时数据表空间SQL如下:
create temporary tablespace user_temp
tempfile 'D:\APP\ORACLE\ORADATA\ORCL\bamboo_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
指令 | 说明 | 例子 |
create tablespace xx | 创建表空间,表空间名称为xx | |
logging/nologging | 生成日志/不生成日志 | |
datafile xx.dbf size mmM | 数据文件的具体位置和数据文件大小,如果有多个文件,可以用逗号隔开,但是每个文件都需要指明大小.单位以指定的单位为准如 5M 或 500K。 | |
删除表空间SQL如下:
drop tablespace user_temp including contents;-- 同时删除文件
查看表空间的所在路径SQL:
select * from dba_data_files
(start) | ||
FILE_NAME | 文件名 | D:\APP\ORACLE\ORADATA\ORCL\SYSTEM01.DBF |
FILE_ID | 文件ID | 1 |
TABLESPACE_NAME | 表空间名 | SYSTEM |
BYTES | 字节 | 838860800(B) = 800(MB) |
BLOCKS | 块 | 102400 |
STATUS | 状态 | AVAILABLE |
RELATIVE_FNO | 相对文件编号 | 1 |
AUT | YES | |
MAXBYTES | 最大字节 | 3.4360E+10 |
MAXBLOCKS | 最大块 | 4194302 |
INCREMENT_BY | 增量 | 1280 |
USER_BYTES | 使用字节 | 837812224 |
USER_BLOCKS | 使用块 | 102272 |
ONLINE_ | 在线 | SYSTEM |
(end) |
3.创建用户
创建用户SQL如下:
create user c##bamboo identified by **** -- 用户名和密码
default tablespace user_data -- 设置默认表空间
temporary tablespace user_temp; -- 设置默认临时表空间
因为我用的数据库是12c,所以用户名前面要加c##,想知道原因请看:
https://blog.csdn.net/wangsimiao118/article/details/78818836
那么要想创建的用户不需要加c##,那就是要求数据库不能为CDB。也就是要连接PDB,只有PDB中的数据库创建的时候才能不加C##。
怎么查数据库是不是CDB呢,如下语句:
select CDB from v$database;
如果得到的结果为YES,那么就是CDB的数据库,否则,则不是。
要不想创建数据库的时候不加c##,我们可以重新创建数据库,打开
Database Configuration Assistant工具。
去掉红框里的勾选就可以了。
4.给用户创建权限
给用户权限SQL如下:
grant connect,resource,dba to username;
5.综合练习(很重要.正在写...)
综合上面的知识,我们来创建一个PDB,然后通过这个PDB 去创建表空间和创建用户、给用户权限,然后通过这个用户去连接pdb,然后创建表。
假设已经安装了oracle12c
(1)现在我们用cmd命令行开始登陆oracle
sqlplus
输入用户 sys (我们用这个登陆)
输入密码:change_on_install as sysdba
登陆成功!如下图示:
可以查一下当前数据库
select name from v$database;
当前数据库为:ORCL
查看当前数据库是不是CDB数据库
select CDB from v$database;
当前数据库是CDB数据库。
查当前CDB有几个PDB:
select name , open_mode from v$pdbs;
两个:一个是默认的PDBORCL,另一个是PDB的模板PDB$SEED(创建PDB的时候会用到PDB$SEED)
(2)创建PDB
6.参考资料
1.https://blog.csdn.net/dev_csdn/article/details/79459017
2.https://www.jb51.net/article/106497.htm