第一章:Oracle的简介、用户、权限、角色及表空间的管理

Laura ·
更新时间:2024-11-14
· 827 次阅读

一、Oracle数据库:

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

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

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

二、 Oracle中的常用命令 --连接数据库的命令connect,用于切换连接用户,简写形式conn --语法格式:conn 用户名/密码 conn yanln/yanln --显示当前登录的用户 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 yan identified by t123; --如果管理员不希望某用户登录, 但又不打算删除某用户,可以将此用户锁定 alter user yan account lock; --如果这个用户不用了,想删除这个用户,可以用drop drop user yan cascade; 六、Oracle的角色管理

什么是角色?

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

三种标准的角色:

CONNECT(连接角色):拥有connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 RESOURCE(资源角色):拥有resource权限的用户只可以创建实体,不可以创建数据库结构。 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;
作者:hsLiao@



表空间 Oracle

需要 登录 后方可回复, 如果你还没有账号请 注册新账号