0
点赞
收藏
分享

微信扫一扫

Oracle学习记录——1.Oracle简介

Just_Esme 2022-09-06 阅读 126


文章目录

  • ​​1.Oracle简介​​
  • ​​2.数据库的比较​​
  • ​​3.Oracle数据库的安装​​
  • ​​4.Sql Plus语法​​
  • ​​Sql Plus常见语法​​
  • ​​Sql Plus中的用户管理​​

1.Oracle简介

Oracle是目前最流行的数据库之一,功能强大,性能卓越

Oracle完全可以代表数据库的最高水平,因此,学习Oracle需要具备一定的基础。

Oracle学习路线

  • 基础部分
  1. 安装/卸载
  2. 链接数据库
  3. 退出数据库
  4. 用户管理
  5. 表管理
  • 进阶部分
  1. 表操作(增删改查),即CRUD
  2. 角色、权限
  3. 函数
  4. sql编程
  5. 数据库
  6. 索引(有效解决大量数据查询效率的有效手段)
  7. 约束,主外键关联
  8. 事务(用于保证事务的完整性)

2.数据库的比较

目前主流数据库

  • 微软:Sql Serveraccess
  • Sql Server非常适合.net体系语言,其他语言也可以,只不过存在效率和稳定度的问题。
  • 瑞典:AB公司的MySql
  • Mysql的前身就是瑞典AB公司的产品,后被Oracle收购。
  • IBM公司:db2和informix
  • db2,大型数据库(体量大过了Oracle)
  • 美国Sybase公司:Sybase
  • 美国Oracle公司:Oralce

Oracle跟MySql的比较

  • MySql没有在权限/角色上的要求,是一种中小型的数据库
  • Oracle在权限/角色上的要求特别严格,这样可以防止所谓的“删库跑路”

数据库划分

  1. 负载量,并发数
  2. 成本(项目经费)
  3. 安全(迄今为止最重要的,也是最看重的)
  4. 根据规模来划分:
  1. 小型数据库
  • 数据库:access、foxbase、sqlite
  • 负载量:很小,10个人以内使用,除了sqlite(1个人)
  • 成本:2000元以内,除了sqlite(免费)
  • 安全性:几乎没有
  1. 中型数据库
  • 数据库:Sql Server、MySql、Informix
  • 负载量:100人左右(单机)
  • 成本:万元以内(Sql Server),虽然Sql Server是收费的,但是他有教育成本
  • 安全性:具有安全性,但不是很强
  1. 大型数据库
  • 数据库:db2、Oracle、sybase
  • 负载量:db2 > oracle > sybase
  • 成本:万元以内(Sql Server),虽然Sql Server是收费的,但是他有教育成本
  • 安全性:具有安全性,但不是很强

3.Oracle数据库的安装

  1. 确认你的计算机没有和Oracle相关内容
  2. 如果要安装Oracle数据库之前建议做两个准备工作:关闭防火墙,断开网络
  3. 安装过程可以参考其他文章,这里不再详述

4.Sql Plus语法

Oracle的sqlplus是与oracle数据库进行交互的客户端工具,借助sqlplus可以查看、修改数据库记录。在sqlplus中,可以运行sqlplus命令与sql语句。

登录sqlplus:在cmd平台下输入

sqlplus

登录之后,需要输入相应的用户名和密码,当显示以下结果时:

Oracle学习记录——1.Oracle简介_数据库

就说明登录Sql Plus成功。

这里再学习一下Sql Plus的常见语法。

Sql Plus常见语法

  1. 查询登录用户

show user

  1. 查询所有的表

SELECT * FROM

  1. 修改每页显示的行数

set linesize <行数>

  1. 退出Sql Plus

exit

  1. 通过Sql Plus新建文件

edit <目录/文件名.后缀名>

  1. 执行文件中的sql指令,如果后缀名是.sql可以省略

start <目录/文件名.后缀名>

或者

@ <目录/文件名.后缀名>

  1. 将Sql Plus屏幕上的内容保存在文件中

开始:

spool <sql文件>

结束:

spool off

会记录spool在开始和结束之中的所有信息。

  1. 创建用户

create user <用户名> identified by <密码>

注意:在11g以下的版本中,密码必须以字母开头,否则不会创建用户。另外,创建用户需要管理员权限

  1. 修改用户的密码,如果给自己修改密码可以直接使用

password <用户名>

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

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

  1. 删除用户

drop user <用户名> [cascade]

注意:如果要删除用户则需要具有dba的权限,或是拥有drop user的系统权限。另外,如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade

  1. 切换用户

conn <用户名/密码>

Sql Plus中的用户管理

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

  • grant

授权给需要登录的用户

grant connect to <需要登录的用户>

注意:这个connect不是登录权限,它是Oracle默认的权限角色(可以参考RBCA原理)

授权给需要查询的用户

grant select on <表名> to <需要查询的用户>

注意:在查询的时候,需要带上表的归属者,示例如下:

希望a用户可以查询b用户的c表

select * from b.c

  • revoke

收回用户的查询权限

revoke select on <表名> to <被撤销查询权限的用户>

注意:一般情况下,回收系统权限是dba来完成的,如果其他的用户想要回收系统权限,要求该用户必须具有相应的系统权限及转授系统权限的选项(with <admin> option)

  • 授予权限的继承

带有(with <admin> option(对象权限))的属性的意思就是将授权的权限一次性给予客户。

假设A是普通用户,具有一定权限,B和C是新建的用户,没有任何权限

A可以赋予B查询某张表的权限,但B不可以接着将相同的权限给予C。

若此刻是A用户,执行以下语句,将查询权交给B:

grant select on <某张表> to

可以执行。当切换到B用户时,执行而以下语句:

grant select on <某张表> to C

会提示失败。

此刻,再次切换到A用户,加上之前提到的关键词:

grant select on <某张表> to B with grant option

授予完成后,切换到B用户,此刻B已然具有给C授权的权限。

注意:执行完以上操作后,B和C此刻都具有查询A中某张表的权限。但是若A用户收回B用户的查询权限,C用户的查询权限也会跟着被收回,可以理解成所谓的“连带责任”

  • 使用profile管理用户口令

profile是口令限制,资源限制的命令集合,当建立数据库时,Oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那么Oracle就会将default分配给用户。

账户锁定

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

例如:指定scott这个用户最多只能尝试3次登陆,锁定时间为两天,sql语句如下:

SQL>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL>alter user scott profile lock_acount;

给用户解锁

alter user scott account unlock;

终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba来操作。

例如:给tea这个用户创建一个profile文件,要求改用户每隔10天要修改自己的登录密码,宽限期为2天,sql语句如下:

SQL>create profile password_history limit password_life_time 10 password_grace_time 2;

password_reuse_time这句话的意思是:指定口令可重用的时间,上例即说明10天后该口令就可以重用。

口令历史

如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历 史,这样oracle 就会将口令修改的信息存放到数据字典中,这样当用户修改密码时, oracle 就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

例子:首先建立profile

SQL>create profile password_history limit password_life_time 10
password_grace_time 2 password_reuse_time 10

password_reuse_time:指定口令可重用时间即10 天后就可以重用

随后,分配给某个用户即可

删除口令

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

例子:

SQL>drop profile password_history[casade]

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


举报

相关推荐

0 条评论