我作为普通用户创建了一些表格,当我将特权更改为sysdba时,我没有fiund我的桌子!
我收到此消息:table or view does not exist
这就是我要做的:
首先,使用普通用户的特权,我创建tab1
:
create table tab1 …;
我插入一些值,当i
select * from tab1;
显示我所有的行,但是当我以sysdba连接时;使用此当前用户,不显示行!
当您登录为sysdba时,您实际上是SYS用户,因此,您已连接到SYS架构,而不是您自己的架构:
sqlplus kjohnston as sysdba
*connected*
SQL> show user;
USER is "SYS"
由于您在系统架构中,因此您必须通过以下方式将表格名称以:
为:select * from kati_ais.tab1; //assuming kati_ais is your schema name
作为附带说明,除非您确实需要该会议的较高级别的特权,否则您不应习惯于登录为Sysdba。
来自Oracle文档https://docs.oracle.com/database/121/admin/dba.htm#admin11048,Sysdba是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一样与数据库神亲近,所以可以,但是免责声明在那里,所以您知道