在一个数据库中可以有多个应用的数据表,这些分歧应用的表可以放在分歧的schema之中,
( h, S& a$ o0 a8 N 9 W8 T' L! T- n6 u* q
同时,每一个schema对应一个用户,分歧的应用可以以分歧的用户毗连数据库,6 K3 S1 i2 V" i% S3 H
; \9 ~8 o) E- Q
这样,一个大数据库就可以按照应用把其表分隔来打点。' v( F# b# B6 U% e& ]8 s
6 r" C6 Y, z, F7 Q1 q5 m: d 分歧的schema之间它们没有直接的关系,分歧的shcema之间的表可以同名,
% D5 Y8 d) N$ K# P 0 m6 P, @7 j- p9 J
也可以互相引用(但必需有权限),在没有操作此外schema的操作根权下,
Z) R4 F4 B& Q) x" _+ c m. G' }( r% A1 a" w" n2 ?
每个用户只能操作它自己的schema下的所有的表。分歧的schema下的同名的表,
' I" t/ m% b& O& k + A* D/ K7 X' J- n% t+ P
可以存入分歧的数据(即schema用户自己的数据)。
, }( t- H5 R$ [6 f+ ?5 B
9 o; G+ _- e+ X2 e: \- m9 s( e Oracle里schema几乎和user/用户是通用的。schema是指一组数据库object+ i6 G) P0 D5 r: D6 T# y8 n
) j* s# }3 f% G8 u$ |4 q# ?; `$ [ (好比:表,视图,包,序列,等等),而这些object是属于用户的,8 P3 \' |$ _* z: v, a1 @
, P. g+ w! O! Q3 ]1 T1 z. S
属于一个用户的所有object就叫schema.
9 Z2 v5 J: E5 P% C T M
+ m. G7 k4 }" i 如不美观你使用Oracle的企业打点器Enterprise Manager,你会发现琅缦沔的用户就叫schema.9 s4 O6 T$ z( g0 r( T% u. u# `
) B; Y5 M, L/ r9 }* C) F$ n Schema 中辞意思是 方案。 "方案"只是 Oracle 一个分类,分歧用户有分歧的方案。
% i0 N1 ^3 x; q1 Y5 |/ d' f5 { 2 p7 T G r+ d# t4 D
拿 DBA Studio 来说吧,在左边分了四大类:(例程,存储,平安,方案)* V6 O' q- z% A5 R# t/ N
5 Q" p! [' X6 {0 j( Y! W- p' K
例程: 是打点库的启动…之类的。 www.2cto.com
0 c7 m \4 N9 X. ~0 ?6 U& Z
' `, e, O+ s7 B8 _/ x: E9 U# _' \ 存储: 打点表空间,数据文件之类。
( l& R. a# f. M: @/ D' d5 B0 C
. Y m* \; o, ], f) ` 平安: 就是打点用户(密码,表空间分配…)
/ j5 ?5 T6 G: m" [9 f
: m7 ]+ A, A( \0 u) B 方案: 有(表,视图,存储过程…),分歧用户有分歧的案。
3 q+ G8 V; t# A( @! f Y) B3 T
$ X- N2 t2 @% l& F/ v$ l 如: 在"方案"->选你的"用户名"之后,才会呈现用户名相关的表。) K/ Y+ X1 L9 ^: g1 ?
- L3 S( U) q/ t# r. \! q ----------------------------两个不轻易理解的概念──user和schema
# s' X/ a& `' v/ C8 W G+ G " q7 b$ N" B1 G# G, ]
user是节制权限的,而schema则是一个容器,非所有者如不美观需要访谒这个容器下的对象 |