浅谈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 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/