允许用户从表中选择

2024-01-08

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 中选择 *;


在第一种情况下,它不起作用,因为您需要:

  1. 引用表名称,包括其所在的架构。即

    从 schema.EMP 中选择*;

OR
2. 创建 [public] 同义词,以便能够“查看”表,而无需在每个 SQL 语句中包含架构。


在第二种情况下,您尝试引用架构,但得到了错误的架构。 EMP 表通常位于 SCOTT 模式中,而不是 SYSTEM 中。虽然在你的情况下也许你需要这样做:

grant select on cis605.emp to chap7;

另外,拥有一个名为“USER”的用户是一个坏主意——它是一个 Oracle 关键字。 (虽然我猜这可能只是为了示例的目的)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

允许用户从表中选择 的相关文章

随机推荐