一、Oracle介绍
Oracle学习笔记
一、 Oracle介绍
-
选择数据库的标准
-
项目的规模
-
负载量多大,用户量多少
-
成本
-
安全性
Oracle 认证
初级:OCA:Oracle Certificated Associate
中级:OCP:Oracle Certificated Professional
高级:OCM:Oracle Certificated Master
-
Oracle的安装、启动与卸载
Oracle安装完毕会自动生成 sys 用户和 system 用户,
-
sys用户是超级用户,具有最高权限,具有sysdba角色,有create database权限,该用户的默认密码是change_on_install
-
system用户是 管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是manager
-
一般对于数据库维护,使用system用户登录就可以
-
手动启动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;
----出错,无法执行,证明:权限级联回收了。
级联回收管理权限。诛连九族。
作者:樊勇
出处:http://www.cnblogs.com/fanyong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
我的联系方式:fanyong@gmail.com
个人独立博客:www.fy98.com