标签: dblink

PostgreSQL:DBLink 奇怪的权限/连接错误

目标是 (1)创建一个连接,(2)返回另一个数据库的视图,以及 (3)关闭所有要存储在视图中的同一个连接(没有存储过程或嵌入式密码)。我想出了以下代码,它使用信任帐户并且似乎可以工作,直到过滤布尔字段。搜索false(field=false) 有效,但搜索true(field=true) 或IS NOT NULL提示输入密码。

返回数据时不需要密码真的很奇怪,但是在过滤时,那就是需要密码的时候。


PostgreSQL: v8.4:

  • 有两个数据库:db_remotedb_local
  • 有两个账户:
    • trust_user(在 pg_hba.conf 中设置为对两个数据库的信任
    • md5_user(在 pg_hba.conf 中设置为两个数据库的md5
  • db_remote 有一个视图 ( v_sessions),它包含两个字段:文本字段和布尔字段,它是用CASE语句创建的。

从 db_local(作为 md5_user)中:

-- Creates okay:
CREATE VIEW v_sessions AS 
SELECT * FROM (
     select  '1' query_type,'' as username, false as is_logged_in 
     from    dblink_connect_u('connection', 'host=development dbname=db_remote user=trusted_user') 
     union 
     select  '2' query_type, username, is_logged_in 
     from …
Run Code Online (Sandbox Code Playgroud)

postgresql dblink

6
推荐指数
1
解决办法
2469
查看次数

查询以查找所有 dblink()

除了手动搜索触发器/函数/存储过程中使用的所有 dblink() 之外,还有没有办法查询这些信息?

示例:触发器内部有一个 dblink,我可以从 postgres 模式中选择一些可以识别它的内容吗?

我认为这是手动操作,但只是为了确保我没有遗漏任何东西。

注意:我有一些日志记录,我也在寻找 dblink()

postgresql dblink

5
推荐指数
1
解决办法
9472
查看次数

当密码有特殊字符时如何创建 Oracle 数据库链接

我正在尝试创建一个 DBLink。SQL Developer 是我正在使用的客户端。我的远程用户的密码中包含 *。我很难弄清楚这一点。此语法不起作用:

CREATE DATABASE LINK my_link
CONNECT TO daniel identified by *password
USING 'hostname:port/servicename';
Run Code Online (Sandbox Code Playgroud)

我尝试了 '\' 并将密码包装在 {}'s,' 中,但无济于事。我收到“命令未正确结束”错误。任何建议都会有所帮助。我知道这是一个简单的问题,但无法通过谷歌搜索来解决。

oracle-11g oracle-sql-developer dblink

5
推荐指数
1
解决办法
2万
查看次数