我尝试从SYS授予所有 scott on emp,但oracle
抛出ORA-00942: table or view does not exist
错误消息。我甚至没有将sys
中的emp表格详细信息显示为dba
。
如何授予scott所有权限,以便我可以在scott中创建视图或用户。当我尝试在scott中创建视图或用户时,系统会抛出insufficient privileges
错误消息。
感谢您的帮助。
答案 0 :(得分:1)
你有(至少)三个不同的问题:
EMPLOYEES
,而不是EMP
EMPLOYEES
表位于HR
架构中,而不在SYS
架构中HR.EMPLOYEES
解决这些问题:
-- connect as SYS
GRANT CREATE VIEW TO scott;
-- connect as HR
CREATE SELECT ON employees TO scott;
-- connect as SCOTT
CREATE VIEW v_scott AS SELECT * FROM hr.employees;
<强>更新强>
如果您不确定正确的表名,可以使用此查询获取名称以EMP
开头的数据库中所有表的列表(要运行此表,您必须使用特权用户帐户,例如SYS):
select owner, table_name from dba_tables where table_name like 'EMP%'
答案 1 :(得分:1)
EMP表是一个古老的对象,用于许多旧的教程和博客文章中。但是,它不再是默认构建的。
如果您想在架构中使用EMP(传统上SCOTT是其所有者),则需要运行构建脚本。您将在哪里找到它取决于数据库的精确版本,但它可能位于sqlplus/demo
子目录下。在我的Linux 11gR2版本上,它位于
%ORACLE_HOME/rdbms/admin/utlsampl.sql
OraFAQ有更多关于SCOTT架构的信息。 Check it out
另一方面,如果您想使用当前文档中引用的现代演示模式(HR,SALES等),您将找到以下所有脚本:
%ORACLE_HOME/demo/schema
文档包含安装说明。 Find out more