Oracle数据库连接和会话的区别

Oracle数据库连接和会话的区别,第1张

连接 (connection)与会话 (session)这两个概念均与用户进程 (user process)紧密相关,但二者又具有不同的含义。

连接 :用户进程和 Oracle 实例间的通信通道(communication pathway)。这个通信通道是通过进程间的通信机制(interprocess communication mechanisms)(在同一个计算机上运行用户进程和 Oracle 进程)或网络软件(network software)(当数据库应用程序与 Oracle 服务器运行在不同的计算机上时,就需要通过网络来通信)建立的。

会话 :用户通过用户进程与 Oracle 实例建立的连接[此处连接与上文中的连接含义不同 ,主要指用户和数据库间的联系 ]。例如,当用户启动 SQL*Plus 时必须提供有效的用户名和密码,之后 Oracle 为此用户建立一个会话。从用户开始连接到用户断开连接(或退出数据库应用程序)期间,会话一直持续。

Oracle 数据库中的同一个用户可以同时创建多个会话。例如,用户名/密码为的SCOTT/TIGER 用户可以多次连接到同一个 Oracle 实例。

当系统没有运行在共享服务模式下时,Oracle 为每个用户会话创建一个服务进程(server process)。而当系统运行在共享服务模式下时,多个用户会话可以共享同一个服务进程。

希望能帮到您!

原理上和网站的一个session差不多,只是session是把key放在cookie里面,数据库连接是把key放在客户端的library的内存里(比如.Net Sql Client)。对MS SQL来说,这个连接的协议叫TDS,底下可以走多种传输层协议,比如tcpip,也可以named pipe。而MySQL就又有自己的协议。当然在拿到key之前,先要走个authentication过程,比如Windows Authentication或者Sql authentication,过了authentication才会产生一个session key。如果是启用SSL的话那么整个连接上的数据流还会被加密,防止信息泄露或者中间人攻击。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10863901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存