oracle筆記

一、建立表空間html

使用system登陸system/manager sysdba數據庫

執行oracle

 

CREATE TABLESPACE ts1  
DATAFILE 'F:\tablespace\ts1' size 100M  
         EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE ts2  
DATAFILE 'F:\tablespace\ts2' size 100M  
         EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

 

會發現F:\tablespace文件夾下生成兩個新文件TS1和TS2ide


若要刪除表空間編碼

執行spa

 

DROP TABLESPACE ts1 INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE ts2 INCLUDING CONTENTS AND DATAFILES;

二、建立用戶code

 

 

create user user1 identified by user1   
default tablespace ts1;
create user user2 identified by user2   
default tablespace ts2;

建立兩個新用戶,用戶user1使用表空間tablespace1,用戶user2使用表空間tablespace2htm

 

三、賦權it

 

grant connect,resource to user1;  
grant create any sequence to user1;  
grant create any table to user1;  
grant delete any table to user1;  
grant insert any table to user1;  
grant select any table to user1;  
grant unlimited tablespace to user1;  
grant execute any procedure to user1;  
grant update any table to user1;  
grant create any view to user1;

對用戶user2的賦權同理
四、建表table

 

connect user1/user1,切換成user1用戶

執行

 

create table table1
(
  id VARCHAR2(32) not null,
  code NUMBER,
  name VARCHAR2(500)
)
comment on column table1.id
  is '主鍵ID';
comment on column table1.code
  is '編碼';
comment on column table1.name
  is '名稱';

connect user2/user12,切換成user2用戶

 

執行

 

create table table2
(
  id VARCHAR2(32) not null,
  code NUMBER,
  name VARCHAR2(500)
)
comment on column table2.id
  is '主鍵ID';
comment on column table2.code
  is '編碼';
comment on column table2.name
  is '名稱';

至此,在oracle數據庫裏,就建立了兩個用戶,對應兩個表空間。若要實現兩個用戶管理下的表之間的透明性,便可以數據互查。能夠經過視圖或同義詞。

 

五、建立視圖

 

create view V_USER1_TABLE1 as
select * from USER1.TABLE1

則user2用戶能夠使用select * from V_USER1_TABLE1來查詢到user1用戶管理下的table1表
六、建立同義詞

 

建立同義詞以前,要先建立數據源鏈接database link

connect system/manager,切換成system用戶

執行

 

create public database link conn_to_user1
  connect to user1 identified by user1
  using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )';

public表示該數據庫源鏈接的全部者爲共有的

 

建立完數據源鏈接後,就能夠建立同義詞了

 

create or replace public synonym USER2_TABLE1
  for USER1.TABLE1@CONN_TO_USER1;

表示同義詞USER2_TABLE1指向USER1下的TABLE1表,能夠使用USER2_TABLE1來查詢USER1下的TABLE1表
同建立數據庫源鏈接一下,有一個public關鍵字,表示該同義詞是公有的,即全部用戶均可以使用。若要對此權限進行限制能夠使用下面的方式。

 

connect system/manager,切換成system用戶

執行

 

grant create synonym to user2

給USER2用戶賦予建立同義詞的權限

 

connect user2/user2,切換成user2用戶
執行

 

create or replace synonym USER2_TABLE1
  for USER1.TABLE1@CONN_TO_USER1;

則該同義詞的全部者爲當前用戶user2(數據庫源鏈接同理),則user2用戶能夠使用select * from USER2_TABLE1來查詢到user1用戶管理下的table1表

相關文章
相關標籤/搜索