问题描述
嗨,我在Oracle Apex中创建了一个表单,当我单击提交按钮,然后运行存储过程,通过dblink更改远程数据库用户密码,但我收到错误为 “ORA-06550: 第1行,第8列: PLS-00352: 无法访问另一个数据库” SYS_DBALINK “。请找到我的代码
版本: 甲骨文数据库11g Express Edition版本11.2.0.2.0-生产
版本: 甲骨文数据库11g Express Edition版本11.2.0.2.0-生产
Below SP runs in local database that calls different database dynamically over dblink DECLARE SQL_STRING VARCHAR2(1000); BEGIN SQL_STRING:=' begin accout_change@'||:P2_DATABASE||'LINK('''||:P2_USERAME||''','''||:P2_PASSWORD||'''); end; '; EXECUTE IMMEDIATE SQL_STRING; -- dbms_output.put_line(SQL_STRING); END; Below SP runs in remote database create or replace PROCEDURE accout_change ( P2_USERAME VARCHAR2, P2_PASSWORD VARCHAR2 ) IS sql_string VARCHAR2(500); BEGIN sql_string := 'alter user ' || P2_USERAME || ' ' || 'identified by ' || P2_PASSWORD; EXECUTE IMMEDIATE sql_string; -- dbms_output.put_line('string ' || sql_string); -- dbms_output.put_line('Success'); EXCEPTION WHEN OTHERS then dbms_output.put_line('Failed'); END;复制
专家解答
当心!当心!此代码具有MASSIVESQL注入的可能性。
停止使用字符串连接。
使用绑定变量。
注意: 这对于alter用户来说很棘手-您无法绑定标识符 (用户名,表名等)-因此,您需要使用dbms_assert来确保代码安全。
要了解此信息,请阅读:
https://www.oracle.com/technetwork/database/features/plsql/overview/how-to-write-injection-proof-plsql-1-129572.pdf
DO THIS NOW!
如果此代码已经存在,请将其删除,直到安全为止。
无论如何,关于你的问题:
看起来链接本身配置不正确。运行时会发生什么:
?
What about the procedure on the remote database? Can you call it on that database? What about manually calling it from SQL*plus/cl/dev over the db link?
停止使用字符串连接。
使用绑定变量。
注意: 这对于alter用户来说很棘手-您无法绑定标识符 (用户名,表名等)-因此,您需要使用dbms_assert来确保代码安全。
要了解此信息,请阅读:
https://www.oracle.com/technetwork/database/features/plsql/overview/how-to-write-injection-proof-plsql-1-129572.pdf
DO THIS NOW!
如果此代码已经存在,请将其删除,直到安全为止。
无论如何,关于你的问题:
看起来链接本身配置不正确。运行时会发生什么:
select * from dual@SYS_DBALINK复制
?
What about the procedure on the remote database? Can you call it on that database? What about manually calling it from SQL*plus/cl/dev over the db link?
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
766次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
649次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
575次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
526次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
521次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
499次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
484次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
452次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
381次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
374次阅读
2025-05-05 19:28:36