启动数据库实例的限制模式(restrict mode)的方法

本文介绍了如何在Oracle数据库中启动和关闭限制模式。在限制模式下,仅管理员和具有restrictedsession权限的用户能登录数据库。文章详细展示了启动限制模式、验证权限、登录尝试、授权过程以及模式切换的具体步骤。

(b14231 第123页)

可以启动数据库实例到限制模式(restrict mode),这时只有管理员和具有restricted session权限的用户可以登录数据库。下面演示打开和关闭限制模式的方法:

启动数据库到限制模式

ora_test@oracle[/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Mar 7 15:26:01 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

idle> startup restrict
ORACLE instance started.

Total System Global Area 209715200 bytes
Fixed Size 1218532 bytes
Variable Size 113248284 bytes
Database Buffers 88080384 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
[@more@]

数据库已经启动到限制模式,我用scott用户登录数据库
首先检查scott用户,确认其没有restricted session权限

sys@CNHTM> select grantee,granted_role from dba_role_privs where grantee='SCOTT'
2 union
3 select grantee,privilege from dba_sys_privs where grantee='SCOTT'
4 ;

GRANTEE GRANTED_ROLE
------------------------------ ----------------------------------------
SCOTT CONNECT
SCOTT RESOURCE
SCOTT UNLIMITED TABLESPACE

登录数据库失败,因为其没有restricted session权限

idle> conn scott/tiger
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege


Warning: You are no longer connected to ORACLE.

为用户scott授予restricted session权限,再次登录数据库,可以登录

idle> grant restricted session to scott;
SP2-0640: Not connected
idle> conn / as sysdba
Connected.
sys@CNHTM> grant restricted session to scott;

Grant succeeded.

sys@CNHTM> conn scott/tiger
Connected.

将数据库修改为正常模式(即退出限制模式)

scott@CNHTM> conn / as sysdba
Connected.
sys@CNHTM> alter system disable restricted session;

System altered.

由正常模式切换到限制模式的方法

sys@CNHTM> alter system enable restricted session;

System altered.

sys@CNHTM>

--end--

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22049049/viewspace-1031630/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22049049/viewspace-1031630/

### ORA-12526: TNS监听器错误,所有实例处于受限模式的解决方法Oracle数据库监听器检测到所有匹配的服务实例均处于受限模式时,会拒绝新的连接请求,并抛出错误`ORA-12526: TNS:listener: all appropriate instances are in restricted mode`。该问题通常出现在数据库迁移、维护或配置变更后,涉及监听器状态、数据库启动模式以及连接配置的多个方面。 首先,需确认数据库实例是否以受限模式启动。受限模式通常用于维护操作,限制非`SYSDBA`权限的用户登录。如果数据库处于受限模式,但连接请求未使用具有`SYSDBA`权限的用户,则会被监听器拒绝。可以通过以下SQL语句检查当前实例启动模式: ```sql SELECT logins FROM v$instance; ``` 如果结果显示`RESTRICTED`,则表示数据库处于受限模式。此时,可以使用具有`SYSDBA`权限的用户进行连接,或者修改数据库启动参数,避免下次启动时进入受限模式: ```sql ALTER SYSTEM SET restrict_sessions = FALSE; ``` 其次,监听器配置和状态对连接请求至关重要。需检查`listener.ora`文件中的配置是否正确,确保监听器能够识别数据库服务。此外,监听器日志文件(通常位于`$ORACLE_HOME/network/log`目录下)中可能包含有关连接请求被拒绝的详细信息,可用于进一步排查问题。 数据库连接配置错误也是常见原因。例如,在WebLogic等中间件环境中,如果数据源配置未正确更新至新数据库地址,可能导致连接请求被发送到旧的、处于受限模式的数据库实例。需检查中间件配置文件(如`jdbc.xml`)中的连接字符串,确保其指向正确的数据库地址[^1]。此外,可通过`tnsping`命令测试TNS连接描述符是否有效: ```bash tnsping <service_name> ``` 如果发现连接仍指向旧数据库,应修改配置并重启相关服务。在排查过程中,可使用`tcpdump`抓包工具确认实际连接的数据库IP地址,确保网络流量未被错误路由。 最后,还需验证监听器是否已正确注册数据库实例。可以使用以下命令手动注册实例: ```sql ALTER SYSTEM REGISTER; ``` 若监听器仍未识别数据库服务,可尝试重启监听器: ```bash lsnrctl stop lsnrctl start ``` 通过上述方法,可有效解决ORA-12526错误,确保数据库连接正常。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值