温馨提示×

温馨提示×

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

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

DB Link权限如何设

发布时间:2026-10-19 19:44:26 来源:亿速云 阅读:90 作者:小樊 栏目:数据库

你说的 DB Link 权限 通常指 Oracle 数据库中的 Database Link(数据库链接)权限设置。下面按常见场景说明。


一、创建 DB Link 所需权限

1. 创建私有 DB Link(最常见)

CREATE DATABASE LINK dblink_name
CONNECT TO remote_user IDENTIFIED BY password
USING 'remote_tns';

需要权限:

  • CREATE DATABASE LINK

授权方式:

GRANT CREATE DATABASE LINK TO user_name;

2. 创建公有 DB Link(所有用户可用)

CREATE PUBLIC DATABASE LINK pub_dblink
CONNECT TO remote_user IDENTIFIED BY password
USING 'remote_tns';

需要权限:

  • CREATE PUBLIC DATABASE LINK

授权方式:

GRANT CREATE PUBLIC DATABASE LINK TO user_name;

二、使用 DB Link 的权限(重点)

创建 DB Link ≠ 能访问远程数据

是否能在 DB Link 上查表,取决于:

1. 本地用户是否有访问 DB Link 的权限

  • 私有 DB Link:只有创建者能用
  • 公有 DB Link:所有用户可用

2. 远程数据库中账号的权限

远程账号(remote_user)必须有:

GRANT SELECT ON remote_table TO remote_user;

否则即使 DB Link 建好也会报错(ORA-00942 等)


三、常见授权示例

示例:用户 A 通过 DB Link 访问用户 B 的表

远程库:

GRANT SELECT ON b.emp TO b;

本地库:

GRANT CREATE DATABASE LINK TO a;

A 用户执行:

SELECT * FROM emp@dblink_name;

四、查看已有 DB Link 权限

-- 当前用户可创建的 DB Link 权限
SELECT * FROM USER_SYS_PRIVS
WHERE PRIVILEGE LIKE '%DATABASE LINK%';

-- 所有用户 DB Link 权限
SELECT * FROM DBA_SYS_PRIVS
WHERE PRIVILEGE LIKE '%DATABASE LINK%';

五、注意事项(安全)

  1. 密码明文风险

    CONNECT TO user IDENTIFIED BY password
    

    建议在 12c+ 使用:

    CONNECT TO user IDENTIFIED BY VALUES 'encrypted_pwd'
    
  2. 尽量避免使用 PUBLIC DB LINK

  3. 远程账号权限最小化


如果你说的是 其他数据库(MySQL / PostgreSQL / SQL Server)的“DB Link”,或想了解 12c/19c 新特性(如 DG 的 DB Link),可以告诉我具体数据库版本和场景。

向AI问一下细节

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

AI
助
手