数据库 DB Link(数据库链接) 的“授权”通常涉及 创建权限授权、使用权限控制 以及 目标库对象的访问权限。不同数据库实现方式不同,下面按常见数据库说明。
-- 授权创建私有 DB Link
GRANT CREATE DATABASE LINK TO 用户名;
-- 授权创建公有 DB Link
GRANT CREATE PUBLIC DATABASE LINK TO 用户名;
-- 私有 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';
在 目标数据库 上授权:
GRANT SELECT, INSERT, UPDATE ON schema.table TO remote_user;
REVOKE CREATE DATABASE LINK FROM 用户名;
CREATE EXTENSION IF NOT EXISTS dblink;
-- 授权使用
GRANT EXECUTE ON FUNCTION dblink_connect(text) TO 用户名;
GRANT EXECUTE ON FUNCTION dblink(text, text) TO 用户名;
SELECT *
FROM dblink('dbname=remotedb user=u password=p',
'SELECT id FROM t')
AS t(id int);
在 远程 PostgreSQL 上:
GRANT SELECT ON TABLE t TO u;
MySQL 没有原生 DB Link,常用方式:
CREATE TABLE local_t (
id INT
)
ENGINE=FEDERATED
CONNECTION='mysql://user:pwd@host:3306/db/t';
远程库授权:
GRANT SELECT ON db.t TO 'user'@'host';
如果你能说明:
我可以给你更精确的授权脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。