现在的位置: 首页 > 综合 > 正文

oracle session和connection的区别与联系

2013年10月12日 ⁄ 综合 ⁄ 共 1231字 ⁄ 字号 评论关闭

为了建立用户,我用system用户登录,因为此用户具有至高无上的权限(新建用户,授权......)。
SQL> conn system/change_on_install as sysdba;
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as SYS

然后新建用户:
SQL> create user yeexun identified by yee123;
User created

为新用户yeexun授权:
SQL> grant connect,resource to yeexun;
Grant succeeded

建立连接:
SQL> conn yeexun/yee123;
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as yeexun

显示当前用户:
SQL> show user;
User is "yeexun"

resource权限里就包括create table权限,所以yeexun用户具有建立表的权限:
SQL> create table customers(
  2   customer_id integer
  3    constraint customers_pk primary key,
  4   first_name varchar2(10) not null,
  5   last_name varchar2(10) not null,
  6   dob date,
  7   phone varchar2(12)
  8  )
  9  /
Table created

session(会话)和connection(连接)的定义:
connection:是一个物理的概念,它指的是一个通过网络建立的客户端和专有服务器(Dedicated Server)或共享服务器(Shared Server)的一个网络连接,既是一条物理路劲。

session:是一个逻辑的概念,它是存在于实例中,一个连接可以拥有多个会话也可以没有会话,同一个连接上的不同会话之间不会相互影响。

session和connection的区别与联系:
1. 一个用户对应一个session,但不一定对应一个connection ,因为几个session可以共享一个connection。

2. 在dedicated sever(专用服务器)连接模式下,session和connection一一对应,且个数上session = connection。

3. 在shared server(共享服务器)连接模式下, 个数上session >= connection。

4. 在shared server的multiplexing session模式下,session >= connection,且并不一一对应。

下面这位专家的比喻更形象:http://blog.csdn.net/java2000_net/archive/2009/01/06/3719313.aspx

抱歉!评论已关闭.