Oracle基本入门教程——基本概念

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

登录

安装好Oracle之后,
以管理员方式进入cmd,输入

>snrctl
>start
>exit

打开监听服务

SQL>sqlpus / as sysdba

以管理员身份进入

当然,你也可以以普通身份登录

SQL>sqlplus scott/你的密码

我们可以使用

SQL>show user

来查看当前登录的用户
在这里插入图片描述

切换用户

普通用户切成管理员

SQL>conn sys/你的密码 as sysdba

管理员切换至普通用户(注:Scott默认密码是tiger)

SQL>conn scott/你的密码

在这里插入图片描述

sys用户和system用户

Oracle安装会自动的生成sys用户和system用户
(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
(2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager。
(3)、一般讲,对数据库维护,使用system用户登录就可。

注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

创建用户

在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。

create user 用户名 identified by 密码; 

注意:密码需要以字母开头
修改密码
概述:如果给自己修改密码可以直接使用

SQL> password 用户名或passw

如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限

SQL> alter user 用户名 identified by 新密码

权限

一般创建用户后要赋予相应权限。因为创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。

权限分为系统权限对象权限

  • 何为系统权限?
    用户对数据库的相关权限,connect、resource、dba等系统权限,如建库、建表、建索引、建存储过程、登陆数据库、修改密码等。
  • 何为对象权限?
    用户对其他用户的数据对象操作的权限,insert、delete、update、select、all等对象权限,数据对象有很多,比如表,索引,视图,触发器、存储过程、包等。
    执行SELECT * FROM Dba_Object_Size;语句可得到oracle数据库对象。
SQL> create user xiaohong identified by oracle;
--创建用户叫 xiaohong ,密码 oracle。
SQL> grant connect to xiaohong;
--授权连接数据库的权限给用户。
SQL> grant select on scott.emp to xiaohong with grant option;
--授权 在emp表上的select权限给xiaohong用户,with grant option 代表它可以把这个权限传递给别人

注:with admin option用于系统权限授权,with grant option用于对象授权。

区别:

  • 给一个用户授予系统权限带上with admin option时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效
  • 而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效

角色

Oracle角色其实就是一组权限的集合,比如我们经常用的DBA、connect、resource等角色,都是Oracle系统为我们定义好的一些常用的角色,一般利用这些角色就可以控制好不同需求用户的权限。

角色分为预定义角色和自定义角色

上面说到赋予权限,如果有一组用户都需要赋予(或回收)一系列权限,那么一个个操作就会显得麻烦且容易出错。这时就可以定义角色,角色具有相应权限,再直接将相应角色赋予用户。

Oracle中角色可以授予给多个用户,并且一个用户可以设置多个角色。因此,Oracle数据库也提供了自定义角色的功能,方便不同用户的权限授予。例如,可以自定义个一个角色,可以查询、更新特定几个关联表的权限。那么以后但凡有用户想用到这些表的操作权限时,可以直接给该用户设置定义好的角色。

Oracle创建角色

Oracle创建角色分为两个步骤:创建角色、给角色授权:

1、创建角色的语法结构:

create role role_name ;

2、授予角色权限的语法结构:

授予角色权限的语法结构和授予用户权限的语法结构一样,只是授予对象是角色而不是对象,具体语法如下:

--授予系统权限
grant system_privilege|all privileges to role_name
[with admin option]
--授予对象权限
grant obj_privilege|all 
on obj_name  to role_name
[with grant option]

eg、创建一个具有操作学生信息表(stuinfo)和班级表(class)权限的角色student_role

--创建角色 student_role
create role student_role;
 
--给student_role授于操作stuinfo、class的操作权限
grant all on student.stuinfo to student_role;
grant all on student.class to student_role;
设置角色

角色创建好后,并不是直接生效,而是要把角色设置给对应的用户后才能生效的。具体语法如下:

grant role_name to user;

概要文件profile

profile是口令限制,资源限制的命令集合
在我们创建用户时,都会为用户指定一个概要文件。概要文件主要是设置用户限制使用数据库资源(主要CPU资源)和Oracle口令参数管理的信息。经常利用Oracle概要文件对数据库用户进行口令管理、指定口令有效期、用户连接时间以及最大空闲等待时间等。

在Oracle系统中,在不给用户指定特定的概要文件时,系统会自动使用默认的概要文件DEFAULT。

Oracle创建概要文件

Oracle创建概要文件的语法结构:

create profile pro_name
limit
[数据库资源参数|口令参数]
删除profile

概述:当不需要某个profile文件时,可以删除该文件。

SQL> drop profile password_history 【casade】

注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。
加了casade,就会把级联的相关东西也给删除掉

1.账户锁定

概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令。

例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。

--创建profile文件
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profile lock_account;
2.给账户(用户)解锁
SQL> alter user scott account unlock;
3.终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba的身份来操作。
例子:给前面创建的用户test创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。

SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;
SQL> alter user test profile myprofile;

退出SQLplus:

sql>exit

查看表空间

Oracle数据库在逻辑上可以划分为一系列的逻辑区域,每一个逻辑区域称为一个表空间。
表空间是Oracle最大的逻辑存储结构

使用表空间的好处:
1、突破操作系统对单个文件的限制,突破磁盘空间位置限制。
2、可以实现不同业务系统间数据的分离。

查看当前用户表空间

select * from user_users;

查看Oracle的所有表空间(这个要管理员才可以)

select * from Dba_Tablespaces;

查看数据库实例信息

desc v$instance;

点这里看Oracle自带的系统表
oracle自带的系统表

数据库基本信息查看

1、查看内存分配:

select * from v&sga;

2、看数据文件(路径和名字)

select name from v$datafile;

3、看日志文件

select member from v$logfile;

4、看控制文件

show parameter control file;

文件操作命令

1.start和@

说明: 运行sql脚本
案例:

sql>@ d:\a.sql或是sql>start d:\a.sql

2.edit

说明: 该命令可以编辑指定的sql脚本
案例:

sql>edit d:\a.sql,这样会把d:\a.sql 这个文件打开

3.spool

说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql并输入sql>spool off
eg、

sql>spool d:\b.sql;
sql>select * from emp;
sql>spool off;

数据库工作模式

数据库使用归档方式运行时才可以进行灾难性恢复。

归档日志模式和非归档日志模式的区别

  • 非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
  • 归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.
  • ARCHIVE LOG LIST 可以查看当前模式状态是归档模式还是非归档模式.

归档模式

Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。

一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
查看数据库工作模式。

如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志

配置数据库,模式的切换

查看当前模式

archive log list

在这里插入图片描述
将数据库启动到归档模式

shutdown		//关闭数据库
startup mount		//以mount模式启动
alter database archivelog;	//将数据库设置为归档模式

或者非归档

SQL>alter database noarchivelog;

打开数据库

SQL>alter database open;

手动归档

alter system archive log current	//对当前的联机日志文件(组)进行归档
alter system archive log all	//对所有已经写满的重做日志文件(组)进行归档

设置归档路径

使用初始化参数log_archive_destlog_archive_duplex_dest设置归档路径:
这种方法只能指定两个归档路径:
LOG_ARCHIVE_DEST参数指定主归档路径
LOG_ARCHIVE_DUPLEX_DEST指定次归档路径,而且只能指定本地归档。
如:

alter system set log_archive_dest='d:\oracle\backup' scope=spfile;
alter system set log_archive_duplex_dest='E:\oracle\backup' scope=spfile;

启用自动归档:

LOG_ARCHIVE_START=TRUE

归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,直到归档完成为止。这时只能读而不能写.
运行过程中关闭和重启归档日志进程 :

SQL>ARCHIVE LOG STOP 
SQL>ARCHIVE LOG START
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值