cis605 确实存在 emp 表,我想为用户分配权限。对我做错了什么有什么想法吗?
SQL> grant select on emp to user;
Grant succeeded.
SQL> connect user
Enter password:
Connected.
SQL> select * from emp;
select * from emp
*
ERROR at line 1:
ORA-00942: table or view does not exist
我也尝试过以不同的方式做
SQL> connect cis605
Enter password:
Connected.
SQL> grant select on system.emp to chap7;
grant select on system.emp to chap7
*
ERROR at line 1:
ORA-00942: table or view does not exist
这是我应该使用的声明
SQL> 从 cis605.emp 中选择 *;
在第一种情况下,它不起作用,因为您需要:
-
引用表名称,包括其所在的架构。即
从 schema.EMP 中选择*;
OR
2. 创建 [public] 同义词,以便能够“查看”表,而无需在每个 SQL 语句中包含架构。
在第二种情况下,您尝试引用架构,但得到了错误的架构。 EMP 表通常位于 SCOTT 模式中,而不是 SYSTEM 中。虽然在你的情况下也许你需要这样做:
grant select on cis605.emp to chap7;
另外,拥有一个名为“USER”的用户是一个坏主意——它是一个 Oracle 关键字。 (虽然我猜这可能只是为了示例的目的)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)