2017-01-17 25 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 Plus에서 SQL을 실행하고 있습니다. 그래서 어떤 방식으로 익명 블록을 사용하거나 스키마 RATOR_MONITORING_CONFIGURATION 스키마에 연결하여 참조 권한을 부여하고 rator_monitor 스키마에 연결하고 alter table 문과 다른 sql 문을 실행할 수있는 다른 승인 문을 사용하는 방법이 있습니다.

답변

1

이 작업을 수행 할 SQL 스크립트가 있으면 간단히 connect 문을 추가하여 아래와 같이 사용자를 전환 할 수 있습니다.

나는 test.sql 파일에 grant 및 alter 문이 있습니다. 두 명의 사용자가 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