千家信息网

如何理解Restrict Session与Restricted Mood

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如何理解Restrict Session与Restricted Mood,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。查阅Oracle官
千家信息网最后更新 2026年10月31日如何理解Restrict Session与Restricted Mood

如何理解Restrict Session与Restricted Mood,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

查阅Oracle官方文档,看到SYSDBA和SYSOPER两个特殊的系统权限System Privilege。在两个权限可以进行的操作中,有一个名为Restricted Session的权限项目,做一下深入的研究。

启动Oracle数据库服务器,是一个阶段性的操作。大体上分为nomount、mount和Open三个阶段。下面是在linux平台上进行的分阶段启动演示。

//连接到一个空实例上,注意,这里验证使用的是OS验证方式;

SQL> conn / as sysdba

Connected to an idle instance.

//nomount状态启动,实例进程启动,SGA空间分配,参数文件加载;

SQL> startup nomount

ORACLE instance started.

Total System Global Area 414298112 bytes

Fixed Size 1336904 bytes

Variable Size 310380984 bytes

Database Buffers 96468992 bytes

Redo Buffers 6111232 bytes

//控制文件加载应用,定位数据文件;

SQL> alter database mount;

Database altered.

//打开数据库文件,实现操作;

SQL> alter database open;

Database altered.

在启动之后,数据库用户就可以进行连接。

启动restricated mode

作为DBA,是可以控制启动阶段和进程的。不同的阶段,可以进行不同类型的操作,如备份各种类型文件。

有时候,我们希望只有特定的一些用户可以连入数据库,比如管理员级别用户。在这种时候,我们可以使用restricted mode方式启动数据库。

启用restricted mode方式启动和运行数据库后,只有那些具有create session和restricted session权限的用户,才能登录入系统数据库。默认情况下,只有SYSDBA和SYSOPER用户拥有restricted session权限。意味着只有数据库管理权限的用户才能进行restricted mode下的数据管理工作。

还有一点要注意,在restricted mode下,用户即使拥有restricted session权限,只能本地登录并且不经过监听程序才可以。Remote方式登录是被拒绝的。

通常,在下面的情况下才考虑使用restricted mode进行维护工作。

ü 需要进行导入和导出数据。这个过程中,数据完整性是不能保证的,最好还是禁止应用用户登入;

ü 使用SQL*Loader进行数据加载;

ü 临时性的拒绝一般用户连入访问数据;

ü 执行特定的数据移植和升级操作;

使用startup restrict命令,就可以以restricted mode方式启动数据库。

SQL> startup restrict

ORACLE instance started.

Total System Global Area 414298112 bytes

Fixed Size 1336904 bytes

Variable Size 310380984 bytes

Database Buffers 96468992 bytes

Redo Buffers 6111232 bytes

Database mounted.

Database opened.

此时,从客户端尝试登录。

首先,尝试在本地local登录

//本地绕过监听器程序登录,是通过的。

SQL> conn / as sysdba;

Connected.

SQL> select count(*) from dba_objects;

COUNT(*)

----------

72461

//监听器本地登录

SQL> conn sys/sys@wilson as sysdba;

ERROR:

ORA-12526: TNS:listener: all appropriate instances are in restricted mode //报错,被拒绝

Warning: You are no longer connected to ORACLE.

//非restricted session权限用户

SQL> conn scott/tiger@wilson;

ERROR:

ORA-12526: TNS:listener: all appropriate instances are in restricted mode //连接被拒绝

//本机非权限登录

SQL> conn scott/tiger

ERROR:

ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege

这次换使用远程登录

SQL> conn sys/sys@wilson as sysdba;

ERROR:

ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式

SQL> conn /@wilson as sysdba;

ERROR:

ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式

SQL> conn scott/tiger@wilson as sysdba;

ERROR:

ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式

试验结果比较怪异,

1、restricted mode是一种连接模式,似乎受到监听器的拦截;

2、绕过监听器程序之后,要进行权限验证;

两个条件均满足,验证了用户是具有权限,且是登录本地的用户。

监听器状态有什么特殊的吗?

[oracle@oracle11g ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-JAN-2011 15:23:08

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle11g)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 04-JAN-2011 14:55:16

Uptime 0 days 0 hr. 27 min. 52 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/oracle/network/admin/listener.ora

Listener Log File /u01/diag/tnslsnr/oracle11g/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle11g)(PORT=1521)))

Services Summary...

Service "wilson" has 1 instance(s).

Instance "wilson", status RESTRICTED, has 1 handler(s) for this service...

Service "wilsonXDB" has 1 instance(s).

Instance "wilson", status RESTRICTED, has 1 handler(s) for this service...

The command completed successfully

看到,监听器对于数据库的状态是了解的。这样就可以理解监听器报错12526了。

恢复状态

通过alter system命令,可以将数据库系统从restricted mode转化回正常模式。

SQL> alter system disable restricted session;

System altered.

//稍稍等待一下,因为动态注册可能需要一会更新

SQL> conn scott/tiger@wilson;

Connected.

SQL> select count(*) from emp;

COUNT(*)

----------

14

Open状态的系统限制访问

在数据库处在open状态的时候,我们也可以通过alter system命令,强行将系统模式转化到restricted mode。命令为:

SQL> alter system enable restricted session;

System altered.

这时,系统会转入到restricted模式。注意,这个时候是可能有其他session正在连入数据库,不同的结构是由不同的处理方式的。

ü 在单实例的环境中,如果系统没有安装Oracle Restart(Oracle管理一个工具),所有用户会话都不会受到影响。所以,在转换到restricted mode之后,进行管理工作之前,要手工的kill掉所有的用户会话;

ü 在单实例的环境中,如果有Oracle Restart组件,所有被Oracle Restart管理的服务都被做离线处理,所有user session自动终止。没有被Restart管理的服务的连接,是不会离线的;

ü RAC环境下,实例的服务都是被Oracle Clusterware管理,都会自动终止掉。没有被Clusterware管理的组件,是不会离线处理的;

Restricted Mode是一种管理工具,在管理生产环境的时候还是比较实用的。

看完上述内容,你们掌握如何理解Restrict Session与Restricted Mood的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

数据 用户 数据库 权限 监听 管理 登录 模式 监听器 系统 方式 状态 程序 实例 文件 阶段 不同 只有 命令 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 金融科技还是互联网 互联网扶贫科技 互联网下的科技发展 宜安科技 互联网金融 互联网科技缩写 互联网科技美容 人人互联网科技是培训 成都玖崟互联网科技有限公司乐商圈怎么样 字节跳动和互联网科技 华夏互联网科技业 小米互联网科技园入驻 江苏互联网智能科技软件 半导体是互联网高科技吗 西安左小互联网科技有限公司 广西泛欧互联网科技有限公司 互联网科技品牌 上海互联网科技园景观 六子台科技互联网展会 互联网科技快速发展优美句子 喔噻互联网科技有限公司 伟宏互联网科技 金融科技还是互联网 青岛中康互联网医疗科技有限公司 顶级互联网科技成果有哪些 移动互联网年度科技创新 注册互联网科技公司经营范围大全 洛阳共同富裕互联网科技有限公司 云南省自由互联网科技有限公司 吉林省码上互联网科技电话
0