浅谈Oracle的受限模式(Restricted Mode)

浅谈Oracle的受限模式(Restricted Mode

一、概述

Oracle数据库中,通常我们用v$instance查看数据库状态以及其他信息,在v$instance中,有一列为logins,取值有两个,一个是ALLOWED ,另一个是RESTRICTED

   一般情况下,我们查看数据库状态,获取的logins值为ALLOWED ,那么RESTRICTED又是什么情况呢,下面我们做一下简单了解。

二、过程
   我们先看一下contents中部分说明
 

Restricted Mode of Instance Startup

You can start an instance in restricted mode (or later alter an existing instance to be in restricted mode). This restricts connections to only those users who have been granted the RESTRICTED SESSION system privilege.


这是Oracle数据库的一种状态,受限模式(Restricted Mode),如果数据库管理员将数据库的状态设置为Restricted Mode,那么只能是拥有restrict权限的用户(受限特权的用户),才能够连接到数据库进行操作。Restricted Mode(受限模式)通常用于数据库管理员在维护数据库的时候使用。Restricted Mode限制新的没有权限的用户登录进来,但是如果一个没有Restricted Mode权限的用户在设置Restricted Mode之前已经登录到了Oracle那么该用户仍然拥有操作数据库的权限,即Restricted Mode不妨碍已经登录进来的用户继续执行操作。

 

 下面我们实验测试
查看数据库版本,状态、模式

SQL> select banner from v$version;

 

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE    11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

 

SQL> select status,instance_name,logins from v$instance;

 

STATUS       INSTANCE_NAME    LOGINS

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

OPEN         firsoul          ALLOWED


创建测试用户,并修改数据库模式,尝试连接

SQL> create user firsoul identified by firsoul;

 

User created.

 

SQL> grant connect,resource to firsoul;

 

Grant succeeded.

SQL> alter system enable restricted session;

 

System altered.

 

SQL> select status,instance_name,logins from v$instance;

 

STATUS       INSTANCE_NAME    LOGINS

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

OPEN         firsoul          RESTRICTED
SQL> conn system/oracle

Connected.

SQL> conn firsoul/firsoul

ERROR:

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

 

Warning: You are no longer connected to ORACLE.

 

将权限restricted session赋予用户firsoul,再次尝试连接

SQL> grant restricted session to firsoul;

 

Grant succeeded.

 

SQL> conn firsoul/firsoul

Connected.


收回用户firsoul权限,再赋予其dba权限

SQL> conn / as sysdba

Connected.

SQL> revoke restricted session from firsoul;

 

Revoke succeeded.

 

SQL> grant dba to firsoul;

 

Grant succeeded.

 

SQL> conn firsoul/firsoul

Connected.


收回dba权限,使用restricted mode之前连接的session对用户firsoul操作

SQL> conn firsoul/firsoul

Connected.

SQL> insert into t values(1);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL>

SQL> insert into t values(2);

 

1 row created.

 

SQL> commit;

 

三、总结

   通过以上,我们得知,如果想数据库设置为Restricted Mode,只有管理员(dba)以及有restricted session权限才可以连接用户。在修改为 Restricted Mode后,之前连接用户不受影响,新用户不能连接。学习数据库中,有许多小知识点,我们通过简单的小实验就可以呈现、更好的掌握、理解它。话说,还有许多基础类的小知识点需要掌握啊,技术不分高低,态度决定一切,加油。

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

转载于:http://blog.itpub.net/29487349/viewspace-1663945/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值