ITPub博客

首页 > 数据库 > Oracle > 工作记录2015.3.23

工作记录2015.3.23

原创 Oracle 作者:pxbibm 时间:2015-03-23 15:41:47 0 删除 编辑

工作非常简单,把某一台数据库上的一个用户下的所有对象,在另一台数据库上,让一个用户只有查询的权限。
说白了,就是把某一台数据库上的业务用户下的所有对象,以只查询的方式开放给另一个数据库,不想让其他人操作,或者知道业务数据库的信息。可以找一台空间的,性能比较低机器做前置机。让那些只有查询权限的用户来访问这台前置的机器。
实现的步骤如下:
业务数据库我们命名为A,查询前置机命名为B.
1.在B上创建dblink
create public database link dblink名字
  connect to 用户名  identified by 密码
  using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 实例服务名)
    )
  )';
用户名:业务数据库A中的业务用户名。
using的部分其实就是我们平时连接业务数据库A的tnsname文件中的信息。
2. 在B上创建一个表空间。
CREATE TABLESPACE 表空间名 DATAFILE '/app/oracle/oradata/DATA01.dbf' SIZE 1G  EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 
3.在B上创建用户
create user 用户名 default tablespace LISDATA identified by 密码;
grant connect to 用户名;
grant create session to 用户名;
GRANT CREATE SYNONYM TO 用户名;
4.在A上生产一个创建同义词的脚本
select 'create or replace synonym '||synonym_name ||' for A上的业务名.'||synonym_name||'@dblink名字;'   from dba_synonyms where owner='A上的业务名';

把生产的脚本在B上执行。

ok
到此我们就是实现了把A数据库下用户的数据对象,以只读的方式,开放给了B数据库。这样我们只告诉业务人员链接B数据库就可以了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12798004/viewspace-1470605/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 的优化器
请登录后发表评论 登录
全部评论
【DBAplus社群】联合发起人。ACOUG核心成员,Oracle用户组年轻专家。熟悉Oracle的体系结构,擅长Oracle数据库架构规划、SQL优化、OWI方面性能的优化。曾服务于航天、航空、机车、大型制造行业数据库的维护以及系统开发工作,开发过基于Oracle数据库的大型ERP系统。
  • 博文量
    341
  • 访问量
    2469930