Oracle 授予选择不适用于序列

Oracle 授予选择不适用于序列,oracle,Oracle,我已在所有者帐户下创建了xyz序列,并为“abc”数据库用户授予了选择权限,但当我尝试选择序列时,它表示使用abc用户的序列不存在 所有者帐户 CREATE SEQUENCE XYZ MINVALUE 0 START WITH 1 INCREMENT BY 1; GRANT SELECT ON XYZ TO ABC; ABC账户 select XYZ.nextval from dual; 我应该使用ABC帐户访问XYZ.nextval。对于如何修复此问题,非常感谢您提供的任何帮助。您似乎缺

我已在所有者帐户下创建了
xyz
序列,并为“abc”数据库用户授予了选择权限,但当我尝试选择序列时,它表示使用abc用户的序列不存在

所有者帐户

CREATE SEQUENCE XYZ MINVALUE 0 START WITH 1 INCREMENT BY 1;

GRANT SELECT ON XYZ TO ABC;
ABC账户

select XYZ.nextval from dual;

我应该使用ABC帐户访问
XYZ.nextval
。对于如何修复此问题,非常感谢您提供的任何帮助。您似乎缺少序列所有者名称

(实际有效的)一个例子

同义词:

SQL> connect hr/hr
Connected.
SQL> create synonym seq for scott.seq;

Synonym created.

SQL> select seq.nextval from dual;

   NEXTVAL
----------
         2

SQL>
公共同义词:

SQL> connect scott/tiger
Connected.
SQL> create public synonym seq for seq;

Synonym created.

SQL> connect hr/hr
Connected.
SQL> select seq.nextval from dual;

   NEXTVAL
----------
         3

SQL>

你举的例子效果很好。非常感谢。但是,您已经使用所有者访问了。序列有没有什么方法可以让我们在没有所有者的情况下访问。对于表,我可以选择没有所有者的表。不客气。您正在寻找的选项称为同义词。我通过添加更多的代码来编辑我的消息;请看一看。这可能是个愚蠢的问题。它说“不能创建与object同名的同义词”。否则我需要大量修改java代码。这是实现您想要做的最明显的方法。任何其他解决方案都可能比(私有或公共)同义词更糟糕。@Kiran
alter session set current\u schema=hr设置名称解析的默认模式。
SQL> connect scott/tiger
Connected.
SQL> create public synonym seq for seq;

Synonym created.

SQL> connect hr/hr
Connected.
SQL> select seq.nextval from dual;

   NEXTVAL
----------
         3

SQL>