Oracle基础

一、Oracle数据库:

相关的操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库(它包含六类文件:数据文件、控制文件、重做日志文件、参数文件、密码文件、归档日志文件)。如下图(黄色部分是三种必须存在的文件):

 

 

数据库是用来存储数据的集合,Oracle用它来存储和管理相关的信息。Oracle数据库必须要与内存里的实例合作,才能对外提供数据管理服务。

Oracle数据库与实例的区别:Oracle实例指的是Oracle的进程和内存。Oracle数据库则是说保存数据的物理文件。另外,可以从一个或多个实例访问一个数据库,但是一个实例一次只能访问一个数据库。

二、 Oracle中的常用命令

--连接数据库的命令connect,用于切换连接用户,简写形式conn
--语法格式:conn 用户名/密码
conn yanln/yanln

--断开当前连接:
discon --显示当前登录的用户 show user --执行操作系统的命令 host mkdir d:\testOracle --导出记录到文本 spool d:\testOracle\test.txt select * from book; spool off --清屏 clear screen --执行文件系统中的sql语句 start d:\test.sql --显示表结构,命令describe,简写形式desc desc student --显示错误信息 show error --退出 exit

三、用系统用户登录Oracle

系统用户说明:

  • sys:这个账户相当于SQL Server中的sa账号,是个超级账户,拥有的权限最大,可以完成数据库的所有管理任务。
  • system:没有sys的权限大,通常用来创建一些查看管理信息的表或试图,同样也不建议使用system架构来创建一些与管理无关的表或试图。
  • sys和system在登录Oracle工具时,sys只能以系统管理员(sysdba)或系统操作员(sysoper)的权限登录,而system可以直接登录(normal)。
  • sysman:是Oracle数据库中用于EM(企业管理器)管理的用户,如果你不用该用户,也可以删除。
  • scott:是Oracle提供的示例用户,里面有一些供初学者学习操作的数据表(emp,dept,salgrade,bonus)。
md-->sqlplus-->提示输入用户名、密码的登录方式

sqlplus  /nolog  : 进入sqlplus界面但不登录

--sys用户以sysdba的身份连接数据库,连接时指定数据库连接标识符@orcl
conn sys/oracle @orcl as sysdba

--sys用户以sysdba的身份连接数据库,连接时没有指定数据库连接标识符,此时将连接默认的数据库
conn sys/oracle as sysdba
show user

--system用户直接登录数据库
conn system/oracle 
show user

--system用户以sysdba的身份登录数据库
conn system/oracle as sysdba 
show user

--不用指定用户名和密码,直接以sysdba的身份登录数据库
conn /as sysdba 

--给scott用户解锁
alter user scott account unlock
conn scott/tiger

四、创建表空间 

什么是表空间?

数据表与空间:表空间实际上是数据库上的逻辑存储结构,可以把表空间理解为在数据库中开辟的一个空间,用于存放我们数据库的对象,一个数据库可以由多个表空间构成。表空间实际上由一个或多个数据文件构成的,数据文件的位置和大小可以由我们用户自己来定义。我们所操作的一些表啊,一些其它的数据对象都是存放在数据文件里的。那么数据文件是物理存储结构,是真正可以看到的,而表空间是逻辑存储结构。

表空间的分类:永久表空间;临时表空间;UNDO表空间。

--创建默认表空间
create tablespace test1_tablespace datafile 'test1file.dbf' size 10m;

--创建临时表空间
create temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf' size 10m;

--查看表空间数据文件的位置
select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';

--查看临时表空间数据文件的位置
select file_name from dba_temp_files where tablespace_name = 'TEMPTEST1_TABLESPACE';

五、Oracle的用户管理

--创建用户
create user yan identified by test default tablespace test1_tablespace temporary tablespace temptest1_tablespace;

--查看创建的用户
select username from dba_users;

--给刚创建的用户授权
grant connect to yan;

--如果想更改用户的密码,我们可以通过
alter user 用户名 identified by 新密码;

--如果管理员不希望某用户登录, 但又不打算删除某用户,可以将此用户锁定
alter user yan account lock;

--如果这个用户不用了,想删除这个用户,可以用drop
drop user yan cascade;

六、Oracle的角色管理

什么是角色?

Oracle角色(role)就是一组权限(或者说是权限的集合)。用户可以给角色赋予指定的权限,然后将角色赋给相应的用户。

三种标准的角色:

  1. CONNECT(连接角色):拥有connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
  2. RESOURCE(资源角色):拥有resource权限的用户只可以创建实体,不可以创建数据库结构。
  3. DBA(数据库管理角色):拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

所以,对于普通用户:授予connect,resource权限;对于DBA管理用户:授予dba权限。

--创建用户user02
create user user02 identified by pass02;

--创建角色
create role manager;

--给角色赋予创建表、创建视图的权限
grant create table, create view to manager;

--给角色manager授权给用户
grant manager to user02;

--回收权限
revoke manager from user02;

--删除权限
drop role manager;

七、Oracle用户的权限管理

什么是权限:权限指的是执行特定命令或访问数据库对象的权力。

权限的分类:

  • 系统权限:允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。
  • 对象(实体)权限:允许用户操纵一些特定的对象,如读取试图,可更新某列、执行存储过程等。
--查看所有系统权限
select * from system_privilege_map;

--创建用户
create user user02 identified by pass02;

--给用户赋予一个创建会话的权限
grant create session to user01;

--通过角色给用户赋予一个系统权限
create role manager;

grant create table, create sequence to manager;

grant manager to user01;


--查看所有对象权限
select * from table_privilege_map;


--通过角色给用户赋予一个对象权限
create role manager01;

grant select,update,insert on scott.emp to manager01;

grant manager01 to user01;

--测试对象权限
conn user01/pass01

select * from scott.emp;(成功)

select * from scott.dept;(失败)

--回收对象权限
revoke select,update,insert on scott.emp from manager01;

八、表空间管理(查看用户的表空间&&修改与删除表空间)

查看用户的表空间:

--查看管理员级别的表空间描述信息
select tablespace_name from dba_tablespaces;

--查看普通用户级别的表空间描述信息
select tablespace_name from user_tablespaces;

--dba_users针对管理员级别的数据字典,用于查看数据库所有用户的用户信息
select username,default_tablespace,temporary_tablespace from dba_users;

--user_users针对普通用户级别的数据字典,用于查看当前登录用户的用户信息
select username,default_tablespace,temporary_tablespace from user_users;

--设置用户默认和临时表空间
alter user user01 
default tablespace TEST1_TABLESPACE 
temporary tablespace TEMPTEST1_TABLESPACE;

修改与删除表空间:

--更改表空间的状态为脱机状态
alter tablespace test1_tablespace offline;

--更改表空间的状态为联机状态
alter tablespace test1_tablespace online;

--更改表空间的状态为只读状态
alter tablespace test1_tablespace read only;

--更改表空间的状态为可读写状态
alter tablespace test1_tablespace read write;

--查看表空间的状态
select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';

--增加数据文件
alter tablespace test1_tablespace add datafile 'test2_file.dbf' size 10m;

--查看表空间的数据文件
select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';

--删除数据文件
alter tablespace test1_tablespace drop datafile 'test2_file.dbf';

--删除表空间
drop tablespace test1_tablespace including contents;

 

posted @ 2022-05-08 11:23  wsh3166Sir  阅读(70)  评论(1编辑  收藏  举报