温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何授权数据库DB Link

发布时间:2026-09-08 17:25:56 来源:亿速云 阅读:83 作者:小樊 栏目:数据库

数据库 DB Link(数据库链接) 的“授权”通常涉及 创建权限授权使用权限控制 以及 目标库对象的访问权限。不同数据库实现方式不同,下面按常见数据库说明。


一、Oracle 中的 DB Link 授权

1. 创建 DB Link 的权限

-- 授权创建私有 DB Link
GRANT CREATE DATABASE LINK TO 用户名;

-- 授权创建公有 DB Link
GRANT CREATE PUBLIC DATABASE LINK TO 用户名;

2. 创建 DB Link 示例

-- 私有 DB Link
CREATE DATABASE LINK dblink_name
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'tns_name';

-- 公有 DB Link
CREATE PUBLIC DATABASE LINK dblink_name
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'tns_name';

3. 使用 DB Link 访问对象

目标数据库 上授权:

GRANT SELECT, INSERT, UPDATE ON schema.table TO remote_user;

4. 撤销权限

REVOKE CREATE DATABASE LINK FROM 用户名;

二、PostgreSQL 中的 DB Link(dblink 扩展)

1. 安装并授权扩展

CREATE EXTENSION IF NOT EXISTS dblink;

-- 授权使用
GRANT EXECUTE ON FUNCTION dblink_connect(text) TO 用户名;
GRANT EXECUTE ON FUNCTION dblink(text, text) TO 用户名;

2. 使用示例

SELECT *
FROM dblink('dbname=remotedb user=u password=p',
            'SELECT id FROM t')
AS t(id int);

3. 远程库对象权限

远程 PostgreSQL 上:

GRANT SELECT ON TABLE t TO u;

三、MySQL(通过 FEDERATED 或中间件)

MySQL 没有原生 DB Link,常用方式:

1. FEDERATED 表

CREATE TABLE local_t (
  id INT
)
ENGINE=FEDERATED
CONNECTION='mysql://user:pwd@host:3306/db/t';

远程库授权:

GRANT SELECT ON db.t TO 'user'@'host';

2. 使用视图 / 中间件(如 MyCat、ShardingSphere)


四、常见注意事项

  • DB Link 用户密码明文风险(尤其 Oracle / PostgreSQL)
  • 公有 DB Link 影响范围广,慎用
  • 网络策略和防火墙必须开放
  • 审计 DB Link 使用行为

如果你能说明:

  • 使用的数据库类型(Oracle / PostgreSQL / MySQL / SQL Server)
  • 创建授权 还是 访问授权
  • 是否跨用户 / 跨库 / 跨服务器

我可以给你更精确的授权脚本。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI