名词解释:DMZ和数据库schema

1、DMZ

DMZ是demilitarizedzone的缩写,即隔离区,主要是为了解决内外网访问的安全问题

DMZ处于公司内网(局域网)和外网(互联网)之间

内网可以访问DMZ,DMZ不能访问内网

外网和DMZ可以互相访问

这样一来,假设DMZ中的机器被入侵,入侵者也不能以这台机器为跳板,继续入侵内网里的机器

2、schema

schema有2层含义,一个是一组DDL,另一个是数据库对象的概念,本文说的是后者

有以下几个对象,数据库实例、catalog、schema、table

数据库实例可以有多个catalog,catalog可以有多个schema,schema包含多张table

在一个数据库中可以有多个应用的数据表,这些表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限)。当没有操作别的schema的权限时,每个用户只能操作它自己的schema下的表

不过不同的数据库产品,对schema和catalog的支持和实现是不同的

对oracle来说,貌似不支持catalog,仅支持schema。也就是说,database实例下面并不是直接挂着若干table,而是挂着若干个schema,table是挂在schema下面的。在database实例和table之间,还有schema这一层

schema和user是一一对应的,或者说,oracle是用user_id来实现schema的,一张table的owner是哪个用户,它的schema也就是什么

schema_name.table_name,才是oracle中一张数据库表的全限定名。也就是说,假设schemauser1下有一张表叫devices,那么

select * from devices;

相当于

select * from user1.devices;

如果用user2连接进数据库,那默认情况下是看不到devices这张表的,但是如果user2得到了devices的读权限,那么也可以用

select * from user1.devices;

相关推荐