0

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> SELECT * from cis605.emp;

4

1 に答える 1

2

最初のケースでは、次のいずれかを行う必要があるため、機能しません。

  1. それが含まれているスキーマを含むテーブル名を参照します。

    SELECT * FROM schema.EMP;

または
2.すべてのSQLステートメントにスキーマを含めずにテーブルを「表示」できるようにするために、[public]シノニムを作成します。


2番目のケースでは、スキーマを参照しようとしていますが、間違ったスキーマを取得しています。EMPテーブルは通常、SYSTEMではなくSCOTTスキーマにあります。あなたの場合、多分あなたはする必要がありますが:

grant select on cis605.emp to chap7;

また、「USER」というユーザーを持つことは悪い考えです。これはOracleのキーワードです。(これは単なる例の目的であると思いますが)

于 2011-10-22T06:55:18.667 に答える