2017-01-17 329 views
0

RATOR_MONITORINGスキーマからRATOR_MONITORING_CONFIGURATION.SMSC_GATEWAY表への参照権限をスキーマRATOR_MONITORINGに付与しています。私は、私のようにエラーを取得しています以下のクエリを実行するとORA-01749:自分の権限をGRANT/REVOKEできません。

GRANT REFERENCES ON "RATOR_MONITORING_CONFIGURATION"."SMSC_GATEWAY" TO "RATOR_MONITORING"; 
ALTER TABLE "RATOR_MONITORING"."SMSC_GATEWAY_STATUS" ADD CONSTRAINT "SMSC_GATEWAY_STATUS_FK1" FOREIGN KEY ("SMSC_GATEWAY_ID") 
    REFERENCES "RATOR_MONITORING_CONFIGURATION"."SMSC_GATEWAY" ("ID") ON DELETE CASCADE ENABLE; 

は:

SQL Error: ORA-01749: you may not GRANT/REVOKE privileges to/from yourself 

私は私が唯一RATOR_MONITORスキーマから実行するだけでなく、他のSQL文を持っています。このSQL文はSQLファイルに格納されます。私はこのSQLファイルをSQL Plusで実行しています。そこで、スキーマRATOR_MONITORING_CONFIGURATIONスキーマに接続し、参照権限を与えて、再度rator_monitorスキーマに接続し、alter table文や他のsql文を実行できる無名ブロックや他のapprochを使用する方法があります。

答えて

1

これを行うSQLスクリプトをお持ちの場合は、connectステートメントを追加するだけで、以下のようにユーザーを切り替えることができます。

私はtest.sqlファイルにgrant文​​とalter文が含まれています。私は2人のユーザshhrを持っています。

conn sh/[email protected] 
grant REFERENCES on sh.customers to hr; 
conn hr/[email protected] 
ALTER TABLE cust ADD CONSTRAINT fk1 FOREIGN KEY (ID) REFERENCES sh.customers(CUST_ID) ON DELETE CASCADE ENABLE; 

私は単純にスクリプトを実行しました。

[[email protected] ~]$ sqlplus/as sysdba 

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jan 17 15:19:40 2017 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 


Connected to: 
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics 
and Real Application Testing options 

SQL> @test.sql 
Connected. 

Grant succeeded. 

Connected. 

Table altered. 

SQL> 
+0

ありがとうございます – Andrew

関連する問題