sysoper身份用户权限:不能查看数据字典表(引用)

简介: 源自:http://www.eygle.com/archives/2005/03/sysopereioaaeei.html 缺省的SYSOPER可以起停数据库,但是不能查询数据字典。

源自:http://www.eygle.com/archives/2005/03/sysopereioaaeei.html

缺省的SYSOPER可以起停数据库,但是不能查询数据字典。

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.1.0.2.0 - Production on Fri Mar 25 17:20:49 2005

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


Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SYS AS SYSDBA on 25-MAR-05 >CREATE USER operator IDENTIFIED BY operator;

User created.

授予dba,sysoper角色。

SYS AS SYSDBA on 25-MAR-05 >grant dba,sysoper to operator;

Grant succeeded.

以普通用户方式登录可以查询,因为具有DBA角色:
SYS AS SYSDBA on 25-MAR-05 >connect operator/operator
Connected.
OPERATOR  on 25-MAR-05 >show user
USER is "OPERATOR"
OPERATOR  on 25-MAR-05 >select count(*) from dba_users;

  COUNT(*)
----------
        12

以SYSOPER身份登录,实际上用户身份切换为PUBLIC,不能查询数据字典:
OPERATOR  on 25-MAR-05 >connect operator/operator as sysoper;
Connected.
PUBLIC AS SYSOPER on 25-MAR-05 >select count(*) from dba_users;
select count(*) from dba_users
                     *
ERROR at line 1:
ORA-00942: table or view does not exist


PUBLIC AS SYSOPER on 25-MAR-05 >show user
USER is "PUBLIC"

但是此时有权启动数据库:
PUBLIC AS SYSOPER on 25-MAR-05 >shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
PUBLIC AS SYSOPER on 25-MAR-05 >startup 
ORACLE instance started.
Database mounted.
Database opened.

可以单独授予SELECT ANY DICTIONARY,SELECT ANY TABLE权限给PUBLIC角色,这样sysoper身份登录用户同时就获得查询字典及表权限。
PUBLIC AS SYSOPER on 25-MAR-05 >connect / as sysdba
Connected.
SYS AS SYSDBA on 25-MAR-05 >grant SELECT ANY DICTIONARY,SELECT ANY TABLE to public;

Grant succeeded.

SYS AS SYSDBA on 25-MAR-05 >connect operator/operator
Connected.
OPERATOR  on 25-MAR-05 >connect operator/operator as sysoper
Connected.
PUBLIC AS SYSOPER on 25-MAR-05 >select count(*) from dba_users;

  COUNT(*)
----------
        12


相关文章
|
7天前
|
Shell 数据库
学习笔记应用——创建用户账户并且拥有自己的信息
学习笔记应用——创建用户账户并且拥有自己的信息
|
8月前
创建用户访问某一用户下的某张表
创建用户访问某一用户下的某张表
16 0
|
Oracle 关系型数据库 数据库
Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法
Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法
|
SQL 数据库
【脚本】快速获得当前用户下“暂忘”的数据库对象信息
对SQL*Plus情有独钟的朋友一定遇到过这样的问题:突然忘记了表的全名(或者其他数据库对象名),仅依稀记得它包含几个字母,怎么可以最快速知道具体的名字呢? 最快速的回答:使用数据字典视图可以达到提示自己的目的。 例如使用如下的SQL语句遍可获得当前用户下所有包含“TMP”关键字的数据库对象信息。 select * from obj where object_name like '%TMP%'; 完全正确,但是没有达到我们“快速”的目的。我这里给出一个非常简单的脚本(以obj为基础进行了简单的格式化),以便达到快速获得提示信息的目的。 1.脚本内容如下,有兴趣的朋友可以在这个基础上进一步
73 0
|
存储 关系型数据库 MySQL
|
数据库 数据库管理 关系型数据库

热门文章

最新文章