一、Oracle介绍

Oracle学习笔记

一、 Oracle介绍

  1. 选择数据库的标准
  2. 项目的规模
  3. 负载量多大,用户量多少
  4. 成本
  5. 安全性

Oracle 认证

初级:OCA:Oracle Certificated Associate 

中级:OCP:Oracle Certificated Professional

高级:OCM:Oracle Certificated Master

  1. Oracle的安装、启动与卸载

Oracle安装完毕会自动生成 sys 用户和 system 用户,

  1. sys用户是超级用户,具有最高权限,具有sysdba角色,有create database权限,该用户的默认密码是change_on_install
  2. system用户是 管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是manager
  3. 一般对于数据库维护,使用system用户登录就可以
  1. 手动启动2个服务

我的电脑---管理----服务---OracleOraHome90MYORA1----右键启动

---OracleOraHome90TNSListener----右键启动

登录sql-plus

用户名:scott

密码:tiger

字符串:默认实例 myOra1

sql-plus常用命令:

show user; -- 显示当前用户

exit; -- 退出sqlPlus

set linesize 120; --设置行字符数

set pagesize 8; --设置分页

spool --向指定文件中输入内容

切换用户:conn system/manager

修改密码:passw 回车—给自己修改密码

给别人修改密码: passw xiaoming(用户名)

--如果给别人修改密码需要有dba的权限或者拥有alter user的权限

编辑文件:edit

创建用户:需要有sys或者system用户权限,否则提示权限不足

create user xiaoming identified by m123;

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

删除用户:一般以dba的身份删除某个用户,如果用其他用户删除用户需要具有drop user权限;

在删除用户时如果该用户已经有表了,需要带cascade参数,用来指定该用户创建的表级联删除。

命令:drop user 用户名 [cascade]

权限

在Oracle中,权限分为数据库权限和对象权限。

系统权限包括登录数据库,建库,建表,建存储过程,建索引等;(大概有140多个)

对象权限:用户对其他用户的数据对象访问/操作的权限;(大概有25个)

例如用户访问其他用户的表、视图等操作的权限;

数据对象:表、存储过程、触发器、视图、序列、同义词等。

角色

在Oracle中,权限太多一一分配会很累,所以提出一种内置多种基本权限的集合,称为角色;

比如:connect是一种角色,里面包含7中权限;

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

预定义角色:系统内置的

自定义角色:用户自己定义的角色

授权举例:grant connect to xiaoming;--授权成功

常见角色介绍:

connect:连接数据库的权限

dba:权限很高,不可轻易授予

resource:可以在任何的 表空间 建表

如果想要给xiaoming授予创建表的权限,需要切换到system用户:

conn system/manager;

grant resourec to xiaoming;

--授权成功

create table user( userId varchar(30), userName varchar2(30) )

--创建成功

select * from test; -- 空的

使用desc命令查看表结构:

desc test;

列出表结构,字段名称,是否为空,类型

如何让xiaoming有可以查询scoot的emp表的权限?

grant select on emp to xiaoming;

--授权成功

conn xiaoming/m1234;

select * from scoot.emp;

其中,scott.emp称为方案

方案:每个用户都有一个对应的逻辑空间,称为方案。

如何让xiaoming有可以修改scoot的emp表的权限?

grant update on emp to xiaoming;

--授权成功;

说明:select, update, insert, delete,这些权限统称为all

为了方便,可以直接授予:grant all an emp to xiaoming;

也就是对emp这张表的所有操作权限都授予给了xiaoming

如何收回权限?

scott希望收回xiaoming对emp表的查询权限;

revoke select on emp from xiaoming;

权限

如果出了授予权限之外,还希望xiaoming具有把这个对象权限授予给其他用户的权限,就要在grant命令后面加上:with grant option

grant select on emp to xiaoming with grant option

如果希望把系统权限授予给其他用户,就要在grant命令后面加上:with admin option

grant select on emp to xiaohong with grant admin option;

问题:scott用户把权限授给了xiaoming,小明又把select权限授予给了xiaohong,如果scott把xiaoming的权限给回收了,那么xiaohong怎么样?

conn scott/m123;

create user xiaoming identified by m123;

grant connect to xiaoming;

grant all on emp to xiaoming;

conn xiaoming/m123;

create user xiaohong identified by m123;

grant connect to xiaohong;

grant selecet on emp to xiaohong;

conn scott/m123;

revoke select on emp from xiaoming;

conn xiaohong/m123;

select * from scott.emp;

----出错,无法执行,证明:权限级联回收了。

级联回收管理权限。诛连九族

原文地址:https://www.cnblogs.com/fanyong/p/2888219.html