ORA-01749: 你不能向/从自己授予权限

3
我正在从RATOR_MONITORING模式运行以下查询,并授予对RATOR_MONITORING_CONFIGURATION.SMSC_GATEWAY表的引用权限给RATOR_MONITORING模式。
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

我还有其他的SQL语句,我只想从RATOR_MONITOR模式中运行。这些SQL语句存储在一个SQL文件中。我正在使用SQL Plus运行此SQL文件。因此,是否有任何方法使用匿名块或任何其他方法连接到RATOR_MONITORING_CONFIGURATION架构并授予引用权限,然后再连接到rator_monitor架构并运行alter表语句以及其他SQL语句。

1个回答

2
如果您有SQL脚本来执行此操作,那么您只需添加连接语句以切换用户,如下所示。
我有一个名为test.sql的文件,其中包含授予和更改语句。我有两个用户shhr
conn sh/sh@orcl
grant REFERENCES on sh.customers to hr;
conn hr/hr@orcl
ALTER TABLE cust ADD CONSTRAINT fk1 FOREIGN KEY (ID) REFERENCES sh.customers(CUST_ID) ON DELETE CASCADE ENABLE; 

我只是执行了这个脚本。

[oracle@ora12c ~]$ 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> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接