a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 168|回复: 1

[综合] Oracle辅导:oracle中的Schema分析

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
在一个数据库中可以有多个应用的数据表,这些分歧应用的表可以放在分歧的schema之中,1 d9 h9 W* v+ l- X6 a$ S
   
2 F3 }: w# |- i$ l& A  |    同时,每一个schema对应一个用户,分歧的应用可以以分歧的用户毗连数据库,
4 L; F( y2 F& a5 [* u6 n% l% i2 `0 ]    5 Y. E1 B/ }( ?5 e. z
    这样,一个大数据库就可以按照应用把其表分隔来打点。! P% L6 ~9 ~6 V  D
    2 K% N/ W* q$ c9 I
    分歧的schema之间它们没有直接的关系,分歧的shcema之间的表可以同名,
5 S: k' B7 o- W! I4 Y7 c$ w    / @% f6 o& f' S" h8 h' K
    也可以互相引用(但必需有权限),在没有操作此外schema的操作根权下,  D  G: B- S, I* |
   
( V2 s# i& s1 m  ]2 Q1 G    每个用户只能操作它自己的schema下的所有的表。分歧的schema下的同名的表,4 c4 X$ e3 F4 n
    6 n. T; B( O8 p, z1 {% w
    可以存入分歧的数据(即schema用户自己的数据)。
  s  M& P1 t. y9 W5 R$ f   
6 J- s% v3 b2 B8 S    Oracle里schema几乎和user/用户是通用的。schema是指一组数据库object
( J$ G5 F- j; v2 A   
) Q' |; ~. G1 m# S! x    (好比:表,视图,包,序列,等等),而这些object是属于用户的,
. o  ~- ?) E8 y% A) k3 {   
2 V8 @  c" A; s3 Z! [; q0 F    属于一个用户的所有object就叫schema.# }, u4 ^/ V7 Q2 r( Y
   
. N+ @5 y/ C8 s% s  e& T( D. D    如不美观你使用Oracle的企业打点器Enterprise Manager,你会发现琅缦沔的用户就叫schema.
, O) L3 G1 q# J1 x* f3 {    - c& c" \! G( I1 Q( {3 Q
    Schema 中辞意思是 方案。 "方案"只是 Oracle 一个分类,分歧用户有分歧的方案。. i3 n: ~- v+ x0 s2 o, L7 x( I( `
   
3 v0 d/ e5 w8 @* J: b    拿 DBA Studio 来说吧,在左边分了四大类:(例程,存储,平安,方案). M% K; [: L6 a& c- y
    % J- m( f' g& I* ~+ f. u4 W- b- \
    例程: 是打点库的启动…之类的。 www.2cto.com" i7 f- g4 q( _2 w
   
6 {. a* I8 d# i+ @    存储: 打点表空间,数据文件之类。
. V  E7 e9 S& e! C, K7 d! A$ g& Y   
+ K' b7 ~+ `9 u2 Z. n( @. y9 y3 c" `    平安: 就是打点用户(密码,表空间分配…)
( s* m# }; Q; P% r, o+ U0 X* R    9 C9 F+ B5 E! a
    方案: 有(表,视图,存储过程…),分歧用户有分歧的案。
" H) K9 \1 p+ ^* u    : U7 S( d4 }# S; e, V( b, ~: L
    如: 在"方案"->选你的"用户名"之后,才会呈现用户名相关的表。2 j1 R. w8 _' f  O- X. T
    0 K7 h; w! ^  P8 h: F. m+ U0 e: K
    ----------------------------两个不轻易理解的概念──user和schema/ Y0 w1 k% e+ S) p( A5 w4 n; C" N% f
   
4 q2 w8 W: t% m7 g5 q; m    user是节制权限的,而schema则是一个容器,非所有者如不美观需要访谒这个容器下的对象
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:54:50 | 显示全部楼层

Oracle辅导:oracle中的Schema分析

就需要在对象前面写上schema(owner)的名字,如不美观不想写而又没有建树synonym,此时可以经由过程alter session set current_schema=schema_name来改变当前session的schema从而在访谒对象时省去schema(owner);最终能否访谒对象仍是要看是否有访谒这个对象的权限而和schema无关。- g2 `8 p/ c2 ]2 f
    0 }5 {: Y  N+ e- t# N+ @3 v
    深切理解user和schema的区别:
: u6 C2 e! Q( ?" R9 p    2 x- K: `, {$ A5 M# j
    user即Oracle中的用户,和所有系统的顶用户概念近似,用户所持有的是系统的权限及资本;
- p0 m/ T2 e9 P; q   
% s) v! }) j1 n$ t) L2 t  R    而schema所涵盖的是各类对象,它包含了表、函数、包等等对象的"地址地",并不搜罗对他们的权限节制。
" b' A3 T: A& p% _# A" S: m    ; `$ D7 G- W- O2 I" X1 |
    好比一个房子,琅缦沔放满了家具,对这些家具有支配权的是房子的主人(user),而不是房子(schema)。
- U/ u) h9 I, A    " m5 V& V3 F3 L7 y0 [) d
    你可以也是一个房子的主人(user),拥有自己的房子(schema)。可以经由过程alter session的体例2 e: f! y3 e: p1 @0 Q% P* H) a4 U
    ! ]9 K7 c2 V. ?% c% c* Y
    进入别人的房子。
, z+ C7 o0 ?+ s5 o5 }" W5 a    # n2 S! ~& W) G
    这个时辰,你可以看到别人房子里的家具(desc)。( [8 C! D% R6 }7 N9 V: \2 K
   
8 F$ T1 t# y. y% G! y4 A' |; M; ]    如不美观你没有出格指定的话,你所做的操作都是针对你当前地址房子中的工具。* O  E4 F. p) t, I) h! n
   
! G3 U. b! ^2 g& \    至于你是否有权限使用(select)、挪动转移(update)或者拿走(delete)这些家具就看这个房子的
4 g, w' h4 e9 G% l; G    8 O3 t# K# Z( `6 M' h% g9 E  Y
    主人有没有给你这样的权限了,或者你是整个大喷香(DB)的老迈(DBA)。' v6 n% w6 w( E3 A6 }; z' V2 H
    ' O% _0 O) {$ \+ A
    alter session set schema可以用来庖代synonyms., h' u# A( }+ b' Z% B/ ~
   
# H* ]/ h  O; C, Y: X- l    如不美观你想挪用其他schema的对象(有权限的前提下),但并没有建synonym,, I" _2 Z1 b, O6 v
    ; y1 ~1 L+ J8 J/ A/ b
    同时又不想把其他schema名字放入代滤鱿脯就可以首先使用alter session set schema=.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 13:10 , Processed in 0.234149 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表