CREATE TABLE t_test (id VARCHAR2(255), name VARCHAR2(255));
DROP TABLE t_test;
当我按下面的查询看user_recyclebin
表,空的结果在USER_RECYCLEBIN表
SELECT * FROM user_recyclebin;
没有选择行,我不能闪回t_test
表。请解释我。为什么?
CREATE TABLE t_test (id VARCHAR2(255), name VARCHAR2(255));
DROP TABLE t_test;
当我按下面的查询看user_recyclebin
表,空的结果在USER_RECYCLEBIN表
SELECT * FROM user_recyclebin;
没有选择行,我不能闪回t_test
表。请解释我。为什么?
回收站仅适用于非系统,本地管理表空间。
你这样做是因为SYSTEM
,这是一个非常糟糕的主意,原因很多。在这种情况下,SYSTEM
的默认表空间为SYSTEM
,这可能是本地管理的,但不符合“非系统”要求。
但实际上don't create your own objects as SYSTEM
:
系统用户名来创建更多的表和视图 这显示管理信息,以及内部表和视图 各种Oracle数据库选项和工具使用。切勿使用 SYSTEM架构来存储非管理用户感兴趣的表。
请勿使用SYS
或者任何默认帐户。创建您自己的用户并在该架构下创建对象。
我可以由具有DBA角色的新用户执行此操作吗? –
我喜欢那个** GRANT DBA TO用户名**。但它还没有工作。 –
@PyaeThuAung - 除非您真的需要,否则您不应该授予DBA;您应该授予用户最低权限以让他们执行其活动;而且您应该通过角色授予这些角色以便更轻松地进行管理。尽管如此,评论的讨论太长了。也许从[安全指南]开始(http://docs.oracle.com/cd/E11882_01/network.112/e16543/users.htm)。 –
SQL * Plus中'show parameters recyclebin'的输出是什么? –
NAME是“recyclebin”,TYPE是“string”,VALUE是“on”。 –
您的模式是否符合您的用户;它可以通过登录触发器更改,也许?你是否从'select user',sys_context('USERENV','CURRENT_SCHEMA')中得到了相同的值;'? –