你说的 DB Link 权限 通常指 Oracle 数据库中的 Database 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;
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 上查表,取决于:
远程账号(remote_user)必须有:
GRANT SELECT ON remote_table TO remote_user;
否则即使 DB Link 建好也会报错(ORA-00942 等)
远程库:
GRANT SELECT ON b.emp TO b;
本地库:
GRANT CREATE DATABASE LINK TO a;
A 用户执行:
SELECT * FROM emp@dblink_name;
-- 当前用户可创建的 DB Link 权限
SELECT * FROM USER_SYS_PRIVS
WHERE PRIVILEGE LIKE '%DATABASE LINK%';
-- 所有用户 DB Link 权限
SELECT * FROM DBA_SYS_PRIVS
WHERE PRIVILEGE LIKE '%DATABASE LINK%';
密码明文风险
CONNECT TO user IDENTIFIED BY password
建议在 12c+ 使用:
CONNECT TO user IDENTIFIED BY VALUES 'encrypted_pwd'
尽量避免使用 PUBLIC DB LINK
远程账号权限最小化
如果你说的是 其他数据库(MySQL / PostgreSQL / SQL Server)的“DB Link”,或想了解 12c/19c 新特性(如 DG 的 DB Link),可以告诉我具体数据库版本和场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。