私は12cのOracleデータベースを持っています。私はCIDBADMINと呼ばれる管理者ユーザーを持っています。 私はこのユーザーを使ってデータベースにログインし、オブジェクトなどをSAMPLE_SCHEMAにインストールします。'変更されたスキーマ'で作成されたテーブルのテーブルのアクセス権
次のコード:
WHENEVER SQLERROR EXIT SQL.SQLCODE;
SET SERVEROUTPUT on;
ALTER SESSION SET CURRENT_SCHEMA=SAMPLE_SCHEMA;
create table TESTTBL ("some_field" VARCHAR2(1024) NOT NULL);
grant all on TESTTBL to CIDBADMIN;
はエラーを与える:
Error starting at line : 7 in command -
grant all on TESTTBL to CIDBADMIN
Error report -
SQL Error: ORA-01929: no privileges to GRANT
01929. 00000 - "no privileges to GRANT"
*Cause: "ALL" was specified but the user doesn't have any privileges
with the grant option.
*Action: Don't grant privileges on that object.
Commit
私はこれを修正する方法を確認していません。私はドキュメントとgoogleをチェックして、これを修正するためにできることを解決できません。 SAMPLE_SCHEMAユーザーとしてデータベースにログインする必要のないソリューションが必要です。
編集001: 私は、sysdbaロールとしてCIDBADMINとしてログインすると、その権限を実行できることを確認しました。これは私の問題を解決しますが、私はCIDBADMINにこれを許可し、sysdbaとしてログオンする必要性を排除するために与えなければならない正確な権限を知りたいと思います。
「管理者」ユーザーには、どの役割と特権が既にありますか? –
スキーマを変更したにもかかわらず、ユーザーは変更されていません。 'sample_schema'' cidbadmin'ユーザにテーブルを作成していることを意味します。また、あなたは自分自身に特権を与えたり/取り消したりすることはできません。したがって、オブジェクトを作成した後、 'sample_schama'として接続しなければならず、' cidbadmin'ユーザにオブジェクト権限を与えることができます。 – JSapkota
アレックス、私は必要な権限を管理者に与えることができます。私はすでにそれに膨大な金額を与えています。私はちょうどこれのために必要なのか知る必要があります。 Jaapkota、私はciマシンがすべてのスキーマのすべてのパスワードにアクセスできるようにしたくないので、sample_schemaとして接続するのは良い解決策ではありません。 – Robert3452