工作記錄2015.3.23

pxbibm發表於2015-03-23

工作非常簡單,把某一臺資料庫上的一個使用者下的所有物件,在另一臺資料庫上,讓一個使用者只有查詢的許可權。
說白了,就是把某一臺資料庫上的業務使用者下的所有物件,以只查詢的方式開放給另一個資料庫,不想讓其他人操作,或者知道業務資料庫的資訊。可以找一臺空間的,效能比較低機器做前置機。讓那些只有查詢許可權的使用者來訪問這臺前置的機器。
實現的步驟如下:
業務資料庫我們命名為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上的業務名   from dba_synonyms where owner='A上的業務名';

把生產的指令碼在B上執行。

ok
到此我們就是實現了把A資料庫下使用者的資料物件,以只讀的方式,開放給了B資料庫。這樣我們只告訴業務人員連結B資料庫就可以了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1470605/,如需轉載,請註明出處,否則將追究法律責任。

相關文章