【发布时间】:2017-04-11 17:42:15
【问题描述】:
一个用户被授权通过另一个名称包含特殊字符的用户通过代理连接:
CREATE USER "A-USER" IDENTIFIED BY "a";
CREATE USER foo IDENTIFIED BY "random-trash";
ALTER USER foo GRANT CONNECT THROUGH "A-USER";
现在我正在努力创建指向此的数据库链接:
CREATE PUBLIC DATABASE LINK dbl CONNECT TO A-USER[FOO] IDENTIFIED BY "a";
-- ... but it complains about '-'
CREATE PUBLIC DATABASE LINK dbl CONNECT TO "A-USER[FOO]" IDENTIFIED BY "a";
-- ... but it treats whole "A-USER[FOO]" as a username
CREATE PUBLIC DATABASE LINK dbl CONNECT TO "A-USER"[FOO] IDENTIFIED BY "a";
-- ... but it expects IDENTIFIED right after closing quote
除了明显去掉用户名中的特殊字符之外,还有什么我可以使用的符号吗?
【问题讨论】:
-
我会说您的最后一个命令将是要使用的命令,但看起来代理用户不支持数据库链接。有关类似问题,请参阅 stackoverflow.com/questions/32706776/…。
-
另见 MOS 注释 1477939.1,尽管这表明第二种语法应该在 11.2.0.3 中工作(确实如此);和相关的错误/功能请求 14370226;和错误 19191702,因为它在 11.2.0.4 中不再工作,即使没有特殊字符。
-
实际上,您的第二种语法也适用于 11.2.0.3,带有特殊字符。您使用的是哪个数据库版本,如果没有特殊字符,它是否适合您?
-
非常有趣。我正在开发 12.1.0.2。我现在测试了 11.2.0.3,实际上它可以使用和不使用特殊字符...
标签: oracle database-link