2

したがって、従業員テーブル (idEmployee、name など) からアカウントが作成された実際のユーザーへのマッピングを行う必要があります。以下のようにテーブル Mapping_Employee_User(idEmployee, userName) を追加することにしました

CREATE TABLE Mapping_Employee_User( 
    idEmployee NUMBER(6)
        CONSTRAINT FK_Mapping_Employee_User1 REFERENCES Employee (idEmployee),
    userName VARCHAR2(30 BYTE)
        CONSTRAINT FK_Mapping_Employee_User2 REFERENCES ALL_USERS(USERNAME),
    CONSTRAINT PK_Mapping_Employee_User PRIMARY KEY (idEmployee, userName)
);

しかし、「ORA01031 権限が不十分です原因: 現在のユーザー名またはパスワードを変更しようとしました...」というメッセージが表示されますが、実際にはそうしていません。参照したいだけです。

注: 私はこのユーザーに対して完全な権利を持っています

SYSとしてログに記録すると、実際のテーブルの名前は「USER$」であることがわかりますが、テーブルALL_USERSが見つかりません...とにかく、この種の参照を行うにはどうすればよいですか??

4

2 に答える 2

0

ALL_USERSはビューであり、それ自体はテーブルではありません。

grant select on all_users to USERNAME;

十分なはずです。それでもORA-01031を取得している場合は、ユーザーがCREATETABLE権限を持っていないことが原因である可能性があります。

grant create table to USERNAME;

于 2011-12-02T21:55:08.860 に答える