访问sysdba权限中的表用户

时间:2016-12-12 19:25:24

标签: oracle oracle11g privilege sysdba

我以普通用户的身份创建了一些表格,当我将权限更改为sysdba时,我没有对表格进行复制!
我收到此消息:table or view does not exist

这就是我所做的:
首先,我使用普通用户的权限创建tab1

create table tab1 …;

我插入了一些值,当我

select * from tab1;

显示我的所有行,但是当我以sysdba身份连接时;对于当前用户,不显示任何行!!

2 个答案:

答案 0 :(得分:1)

当您以sysdba身份登录时,您实际上成为了sys用户,因此,您已连接到sys架构,而不是您自己的架构:

sqlplus kjohnston as sysdba
*connected*
SQL> show user;
USER is "SYS"

由于您位于sys模式中,因此必须通过在表名前添加模式名称来引用模式中的表,如:

select * from kati_ais.tab1;  //assuming kati_ais is your schema name

作为旁注,您不应该养成以sysdba身份登录的习惯,除非您确实需要该会话的更高级别权限。

答案 1 :(得分:0)

从oracle文档https://docs.oracle.com/database/121/ADMIN/dba.htm#ADMIN11048,这是sysdba为您的用户提供的内容:

Perform STARTUP and SHUTDOWN operations

ALTER DATABASE: open, mount, back up, or change character set

CREATE DATABASE

DROP DATABASE

CREATE SPFILE

ALTER DATABASE ARCHIVELOG

ALTER DATABASE RECOVER

Includes the RESTRICTED SESSION privilege

您需要与其他用户一起查看表格:

grant select on *normal_user*.table1 to *your_sysdba_user*

并为每个表重复

或者你可以用

打开吧
grant select any table to *your_sysdba_user*

但请注意,选择任何表格都包含每个人的所有内容,包括数据字典视图,这可能超出您真正希望允许的范围

我认为你的sysdba用户会像sys一样接近数据库,所以没关系,但免责声明就在那里,所以你知道