成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > oracle 虛擬專用數(shù)據(jù)庫詳細介紹

oracle 虛擬專用數(shù)據(jù)庫詳細介紹

熱門標(biāo)簽:海南400電話哪里辦理 安陽外呼系統(tǒng)免費 貴陽電話外呼系統(tǒng)哪家好 400電話是不是免費申請 圖像地圖標(biāo)注 呼倫貝爾智能手機地圖標(biāo)注 分布式呼叫中心 南寧人工智能電銷機器人費用 濟南地圖標(biāo)注公司

所謂虛擬專用數(shù)據(jù)庫(VPD)指的是,通過在數(shù)據(jù)庫里進行配置,從而讓不同的用戶只能查看某個表里的部分數(shù)據(jù)。VPD分為以下兩個級別。

行級別:在該級別下,可以控制某些用戶只能查看到某些數(shù)據(jù)行。比如,對于銷售數(shù)據(jù)表sales 來說,每個銷售人員只能檢索出他自己的銷售數(shù)據(jù),不能查詢其他銷售人員的銷售數(shù)據(jù)。

列級別:在該級別下,可以控制某些用戶不能檢索某個表的某個列的值。比如用戶HR 下的 employees 表中,含有工資(salary)列,由于該列比較敏感,因此不讓其他用戶查詢該列的值。 其他用戶檢索該列時,會發(fā)現(xiàn)其值全都為空(null )。

一、基于行的VPD 

基于行的VPD 也叫作Fine-Grained Access Control ,簡稱 FGAC 。FGAC 通過定義規(guī)則實現(xiàn),規(guī)則 的集合叫做FGAC 政策(policy)。如果對某個表設(shè)置了 FGAC ,則當(dāng)用戶對該表發(fā)出查詢或者DML 語句時,Oracle 都會根據(jù)定義的 FGAC 政策,而自動改寫這些SQL 語句。其改寫方式為自動在SQL 語句后面添加where條件。

比如,我們在OE用戶下有一個表sales_list ,存放了所有的銷售記錄。每個銷售人員只能查詢他 自己的銷售記錄。于是,我們在sales 表上設(shè)置FGAC 政策來實現(xiàn)這個業(yè)務(wù)需求。如果某個銷售人員 (假設(shè)其登錄的用戶名為 S0020 )發(fā)出下面的查詢語句:

Select * from sales_list ; 

當(dāng)Oracle 在執(zhí)行該語句時,如果發(fā)現(xiàn) sales_list 表上存在FGAC 政策,于是就會根據(jù) FGAC 政策,按照如下方式改寫該SQL 語句:

Select * from sales_list where seller_id='S0020'; 

對用戶來說,這個添加 where條件的過程是完全透明的,用戶并不知道 Oracle 已經(jīng)改寫了他發(fā)出的SQL 語句,從而過濾了查詢結(jié)果。當(dāng)然,如果該銷售人員發(fā)出的語句為:

Select * from sales_list where values>1000 ; 

那么,當(dāng)Oracle 在改寫該 SQL 語句時,則會改寫為如下形式:

Select * from sales_list where qty_sold>1000 and seller_id='S0020'; 

使用FGAC 政策來限定返回記錄的方式具有許多優(yōu)點。比如,不需要改寫應(yīng)用程序、對用戶完全透明、集中設(shè)置、便于管理等。

在使用FGAC 時,會涉及應(yīng)用程序上下文(Application Context)的概念,使用應(yīng)用程序上下文可 以簡化FGAC 的實現(xiàn)。應(yīng)用程序上下文是一個數(shù)據(jù)庫對象,可以把它理解為數(shù)據(jù)庫里的每個 session 的全局環(huán)境變量。一旦用戶登錄到數(shù)據(jù)庫,從而創(chuàng)建出session 以后,應(yīng)用程序上下文就在整個 session 的生命周期里可用。在應(yīng)用程序上下文里可以定義多個屬性,并為這些屬性設(shè)置具體的值。而用戶不 能直接修改屬性的值,只能通過程序包來修改屬性值。應(yīng)用程序上下文總是由用戶sys 擁有。

比如,對于前面 sales_list 表的例子來說。我們可以創(chuàng)建一個應(yīng)用程序上下文,當(dāng)用戶登錄時,將 該用戶的ID 號作為一個屬性值放入該應(yīng)用程序上下文中。然后在定義FGAC 政策的時候,將該用戶 ID號取出,并作為限定條件短語(也就是where條件語句)返回給 Oracle,從而實現(xiàn)FGAC 。

在Oracle 數(shù)據(jù)庫里,已經(jīng)為每個 session 都預(yù)先建立了一個應(yīng)用程序上下文:userenv。一旦建立了session ,該 session 就可以使用這個應(yīng)用程序上下文。在 userenv中已經(jīng)預(yù)先定義了一些屬性,比如 ip_address、session_user和db_name 等。在獲取應(yīng)用程序上下文里的屬性值時,我們使用sys_context 函數(shù)。該函數(shù)包含兩個參數(shù),第一個參數(shù)表示應(yīng)用程序上下文的名稱,第二個參數(shù)表示要顯示的屬性 名稱。如下所示:

SQL> select sys_context('userenv','ip_address') "IP", 
   sys_context('userenv','db_name') "DB" from dual; 
IP           DB 
---------------   --------- 
152.68.32.60     ora10g 

我們也可以創(chuàng)建自己的應(yīng)用程序上下文,如下所示:

SQL> create or replace context sales_ctx using oe.sales_app_pkg; 

在這里,sales_ctx 是應(yīng)用程序上下文的名稱,而 sales_app_pkg 則是用來設(shè)置sales_ctx 里屬性的程序包。在創(chuàng)建應(yīng)用程序上下文時,指定的、用來設(shè)置其中屬性的程序包可以不必事先存在。但是在為應(yīng)用程序上下文里設(shè)定屬性值時,該程序包必須存在,否則報錯。如果要刪除應(yīng)用程序上下文,則使用下面的命令:

SQL> drop context sales _ctx; 

創(chuàng)建了應(yīng)用程序上下文以后,我們就可以在其中設(shè)置屬性了。在設(shè)置具體的應(yīng)用程序上下文屬性時,必須使用Oracle 提供的程序包 dbms_session.set_context 來設(shè)置其屬性。其使用格式為: 

dbms_session.set_context ('context_name', 'attribute_name', 'attribute_value') 

我們只能在程序包里使用dbms_session.set_context,而不能直接在SQL*Plus里調(diào)用。如下所示: 

SQL> show user 
USER is "SYS" 
SQL> exec dbms_session.set_context('sales_ctx','seller_id','S0020'); 
BEGIN dbms_session.set_context('sales_ctx','seller_id','S0020'); END; 
* 
ERROR at line 1: 
ORA-01031: insufficient privileges 
ORA-06512: at "SYS.DBMS_SESSION", line 90 
ORA-06512: at line 1 

我們創(chuàng)建oe.sales_app_pkg包,如下所示:

SQL> connect oe/oe 
SQL> create or replace package sales_app_pkg is 
 2  procedure set_sales_context; 
 3 end;  
 4 / 
SQL> create or replace package body sales_app_pkg is 
 2  procedure set_sales_context is 
 3  begin 
 4  dbms_session.set_context('sales_ctx','seller_id',user); 
 5  end; 
 6 end; 
 7 / 
SQL> grant select on sales_list to public; 
SQL> grant update on sales_list to public; 
SQL> grant execute on sales_app_pkg to public; 

把執(zhí)行oe.sales_app_pkg 程序包的權(quán)限賦給所有用戶以后,我們可以測試應(yīng)用程序上下文是否生效了。

SQL> connect hr/hr 
SQL> exec oe.sales_app_pkg.set_sales_context; 
SQL> select sys_context('sales_ctx','seller_id') from dual; 
SYS_CONTEXT('SALES_CTX','SELLER_ID') 
-------------------------------------------------------------------------------- 
HR 

可以看到,應(yīng)用程序上下文生效了。接下來,我們創(chuàng)建用于FGAC 規(guī)則的函數(shù)。

SQL> create or replace package sales_app_pkg is 
 2  procedure set_sales_context; 
 3  function where_condition 
 4  (p_schema_name varchar2,p_tab_name varchar2) 
 5   return varchar2; 
 6 end; 
 7 /  
SQL> create or replace package body sales_app_pkg is 
 2 procedure set_sales_context is 
 3   v_user varchar2(30); 
 4 begin 
 5  dbms_session.set_context('sales_ctx','seller_id',user); 
 6 end; 
 7  
 8 function where_condition 
 9 (p_schema_name varchar2,p_tab_name varchar2) return varchar2 is 
 10  v_seller_id varchar2(100) := upper(sys_context('sales_ctx','seller_id')); 
 11  v_where_condition varchar2(2000); 
 12 begin 
 13  if v_seller_id like 'S%' then 
 14   v_where_condition := 'seller_id = ' || '''' || v_seller_id || ''''; 
 15  else 
 16   v_where_condition := null; 
 17  end if; 
 18  return v_where_condition; 
 19 end; 
 20 end; 
 21 / 

在這里,我們主要關(guān)注 where_condition 函數(shù),該函數(shù)會為 FGAC 規(guī)則返回限定條件。這種 FGAC 規(guī)則函數(shù)必須具有兩個傳入?yún)?shù),第一個參數(shù)表示 schema 名稱,第二個參數(shù)表示表的名稱。表示對哪 個schema 下的哪個表添加FGAC 規(guī)則。同時必須返回字符型的值,該返回值會被Oracle 自動添加到 SQL 語句中的where條件部分。不過函數(shù)名稱和參數(shù)名稱可以按照需要進行指定。從這里定義的函數(shù) 體中可以看出,如果登錄的用戶名以S 開頭,則會受到FGAC 規(guī)則的限制,where 條件里會添加 seller_id='Sxxxx' ,Sxxxx 表示登錄的用戶名。否則,如果以其他用戶的身份登錄,則不會受到FGAC規(guī)則的限制。

創(chuàng)建了用于FGAC 規(guī)則的函數(shù)以后,我們開始定義FGAC 規(guī)則。

SQL> connect / as sysdba 
SQL> begin 
 2  dbms_rls.add_policy( 
 3    OBJECT_SCHEMA=>'oe', 
 4    OBJECT_NAME=>'sales_list', 
 5    POLICY_NAME=>'oe_sales_list_fgac', 
 6    FUNCTION_SCHEMA=>'oe', 
 7    POLICY_FUNCTION=>'sales_app_pkg.where_condition', 
 8    STATEMENT_TYPES=>'select,update', 
 9    UPDATE_CHECK=>true, 
 10    ENABLE=>true); 
 11 end; 
 12 / 

如上所示,我們使用 dbms_rls 程序包來創(chuàng)建 FGAC 規(guī)則。我們?yōu)橛脩?OE下的sales_list 表創(chuàng)建了 規(guī)則;該規(guī)則利用用戶 OE下的sales_app_pkg.where_condition 函數(shù)返回 where條件;該規(guī)則作用的 SQL 語句類型為select 和update ;update_check 參數(shù)說明是否對更新以后的結(jié)果判斷是否滿足 FGAC 規(guī)則; 在創(chuàng)建規(guī)則的同時,我們也啟用該規(guī)則(enable 設(shè)置為true )。

創(chuàng)建了FGAC 規(guī)則以后,我們需要在用戶登錄到應(yīng)用程序的時候,調(diào)用 sales_app_pkg  程序包里 的set_sales_context 存儲過程來設(shè)置該用戶的應(yīng)用程序上下文里的 seller_id 屬性的值。在實際應(yīng)用中, 我們可以在登錄界面上,當(dāng)用戶單擊登錄按鈕的時候進行設(shè)置。在這里為了演示效果,我們創(chuàng)建一個 登錄觸發(fā)器來設(shè)置,如下所示:

SQL> connect / as sysdba 
SQL> create or replace trigger set_seller_id_on_logon 
 2 after logon on DATABASE 
 3 begin 
 4  oe.sales_app_pkg.set_sales_context; 
 5 end; 
 6 /  

現(xiàn)在,我們可以開始測試FGAC 規(guī)則的效果了。

SQL> connect oe/oe 
SQL> select seller_id,count(*) from sales_list group by seller_id; 
SELLER_ID  COUNT(*) 
---------  --------- 
S0010        1067 
S0030        968 
S0020        1465 

以用戶OE的身份登錄以后,可以看到,三個銷售人員各自的數(shù)據(jù)行數(shù)。然后以S0010 的身份登錄:

SQL> connect s0010/s0010 
SQL> select sys_context('sales_ctx','seller_id') from dual; 
SYS_CONTEXT('SALES_CTX','SELLER_ID') 
--------------------------------------- 
S0010 
SQL> select seller_id,count(*) from oe.sales_list group by seller_id; 
SELLER_ID  COUNT(*) 
---------  --------- 
S0010        1067 

很明顯看到,我們設(shè)置的FGAC 規(guī)則生效了。我們繼續(xù)測試更新操作:

SQL> select seller_id,qty_sold from oe.sales_list where id=300; 
SELLER_ID  QTY_SOLD 
---------  -------- 
S0010     1 
SQL> update oe.sales_list set seller_id='S0020' where id=300; 
update oe.sales_list set seller_id='S0020' where id=300 
     * 
ERROR at line 1: 
ORA-28115: policy with check option violation 

由于我們在創(chuàng)建FGAC 規(guī)則時,指定了update_check 為true ,當(dāng)用戶 S0010 登錄以后更新sales_list 表,將 seller_id 從S0010 更新為S0020 時報錯,因為 S0010 無權(quán)查詢和修改不屬于他的銷售數(shù)據(jù)。如 果指定update_check 為false ,則允許這樣的update 語句成功。

FGAC 規(guī)則的使用是非常靈活的,其關(guān)鍵就在于 where_condition 函數(shù)的寫法。如果要刪除 FGAC規(guī)則,則執(zhí)行下面的代碼:

SQL> begin 
 2  dbms_rls.drop_policy( 
 3    OBJECT_SCHEMA=>'oe', 
 4    OBJECT_NAME=>'sales_list', 
 5    POLICY_NAME=>'oe_sales_list_fgac'); 
 6 end; 
 7 / 

二、基于列的VPD 

對于某些敏感列來說,比如員工的工資等,我們可以通過創(chuàng)建基于列的 VPD ,從而屏蔽這些敏感列,只有具有權(quán)限的用戶才能訪問這些列。

基于列的VPD 與前面討論的FGAC 一樣,也是通過設(shè)置政策來實現(xiàn)的。設(shè)置基于列的VPD 時,我們首先需要創(chuàng)建一個政策所需要用到的函數(shù),如下所示。

SQL> connect hr/hr 
SQL> create or replace function hr_col_vpd 
 2 (p_owner in varchar2,p_obj in varchar2) 
 3  return varchar2 
 4 is  
 5 l_ret  varchar2(2000); 
 6 begin 
 7   if (p_owner = USER) then 
 8    l_ret := NULL; 
 9   else 
 10    l_ret := '1=2'; 
 11   end if; 
 12   return l_ret; 
 13 end;  
 14 / 

這里,我們創(chuàng)建了一個規(guī)則函數(shù)。與 FGAC 規(guī)則一樣,該函數(shù)必須有兩個傳入?yún)?shù),第一個表示 要限定的表所屬的schema 名稱,第二個表示要限定的表的名稱。在該函數(shù)中,我們定義,如果登錄用 戶為表的屬主,則可以查看所有列;否則,登錄用戶不是表所屬的用戶,則不能查看指定列。

至于具體哪些列要被屏蔽,則需要在定義政策時進行指定,如下所示:

SQL> begin 
 2 dbms_rls.add_policy(object_schema=>'hr', 
 3 object_name=>'employees', 
 4 policy_name=>'hr_emp_col_policy', 
 5 function_schema=>'hr', 
 6 policy_function=>'hr_col_vpd', 
 7 statement_types=>'select', 
 8 sec_relevant_cols=>'salary', 
 9 sec_relevant_cols_opt => dbms_rls.all_rows 
 10 ); 
 11 end; 
 12 / 

創(chuàng)建基于列VPD 與創(chuàng)建FGAC 政策一樣,也是使用dbms_rls 程序包里的add_policy 存儲過程。 在這里,我們定義了一個名為 hr_emp_col_policy 的政策。該政策作用在用戶 HR下的employees 表上; 采用的政策函數(shù)為用戶HR下的hr_col_vpd 。
與FGAC 政策不同的是,我們需要指定另外兩個參數(shù):sec_relevant_cols表示要屏蔽的列的名稱, 可以指定多個列,列與列之間用逗號隔開;sec_relevant_cols_opt 設(shè)置為all_rows,則說明對 employees 表里所有的記錄都屏蔽salary 列。

我們以用戶HR的身份登錄,并顯示salary 列。

SQL> connect hr/hr 
SQL> select employee_id,last_name,salary from hr.employees where rownum4; 
EMPLOYEE_ID  LAST_NAME      SALARY 
-----------  -------------    ------- 
198        OConnell        2600 
199        Grant          2600 
200        Whalen         4400 

可以看到所有的salary 列都顯示出來了。然后以用戶OE的身份登錄,執(zhí)行下面的SQL 語句:

SQL> connect oe/oe 
SQL> select employee_id,last_name,salary from hr.employees where rownum4; 
EMPLOYEE_ID  LAST_NAME      SALARY 
-----------  -------------    ------- 
198        OConnell 
199        Grant 
200        Whalen 

很明顯,對于用戶OE來說,salary 列已經(jīng)被屏蔽了。

總結(jié)

以上就是本文關(guān)于oracle 虛擬專用數(shù)據(jù)庫詳細介紹的全部內(nèi)容,感興趣的朋友可以瀏覽本站其他相關(guān)專題,有什么問題可以隨時留言,小編會及時回復(fù)大家。感謝朋友們對本站的支持!

您可能感興趣的文章:
  • Oracle RMAN自動備份控制文件方法介紹
  • oracle 數(shù)據(jù)庫啟動階段分析
  • Oracle分頁查詢性能優(yōu)化代碼詳解
  • Oracle安裝監(jiān)聽器錯誤的解決方法
  • oracle求和代碼示例

標(biāo)簽:南充 焦作 滁州 郴州 合肥 遼源 涼山 許昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《oracle 虛擬專用數(shù)據(jù)庫詳細介紹》,本文關(guān)鍵詞  oracle,虛擬,專用,數(shù)據(jù)庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《oracle 虛擬專用數(shù)據(jù)庫詳細介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于oracle 虛擬專用數(shù)據(jù)庫詳細介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本一区美女| 精品无码国产污污污免费网站| 国产一二精品视频| 在线影视一区| 日本久久一区二区三区| 欧美日韩精品一本二本三本| 国产美女做爰免费视频软件| 佐佐木明希av| 国产野外战在线播放| 香蕉视频一区| jizzjizzjizzjizzjizzjizzjizz| 一本久道综合色婷婷五月| 99精品国产高清一区二区| 日本黄色电影网站| 亚洲视频在线看| 成人中文字幕在线| 天天草天天草| 亚洲а∨天堂久久精品9966| 久久国产综合视频| 91ts人妖另类精品系列| 国产美女在线精品免费观看| 国产一区91精品张津瑜| 国产精品美女久久久久aⅴ国产馆| 国产亚洲精品久久久久久打不开| 99久久久久国产精品| 国产成人久久精品一区二区三区| 成人精品小视频| 麻豆国产精品一区二区三区| 亚洲无码精品一区二区三区| 欧美日韩第二页| 亚洲日本精品一区| 韩国三级一区| 色窝窝无码一区二区三区成人网站| 国产日产一区二区| 国产一区二区三区四区hd| 奇米一区二区| 久久久亚洲精品视频| 日韩视频1区| 毛茸茸free性熟hd| 国产在线观看精品一区二区三区| 久久精品美女视频网站| 狠狠久久伊人中文字幕| 欧美视频在线免费| 一区二区三区中文字幕在线观看| 91中文字精品一区二区| 综合另类专区| 久久香蕉综合色一综合色88| 中文字幕一区二区三区人妻电影| 三上悠亚在线免费观看| 激情校园亚洲图片| 日韩三级在线免费观看| 国产成人精品在线观看| 国产亚洲欧美一级| 亚洲少妇一区二区三区| 国产深夜精品| 精品福利一二区| 国产精品国产三级国产aⅴ入口| 免费国产一区二区| 亚洲综合av在线播放| 国产麻豆精品视频一区二区| 精品久久99ma| 性欧美精品孕妇| 国产河南妇女毛片精品久久久| 电影一区二区三| 日本不卡一区二区三区在线观看| 妺妺窝人体色www在线小说| 久久久精品综合| 污视频在线免费| 欧美午夜精品一区二区蜜桃| 一本到高清视频免费精品| 国产激情在线免费观看| 偷拍欧美精品| 国产福利第一视频在线播放| 日本一卡二卡在线播放| 成年女人在线看片| 日韩高清人体午夜| 岛国片在线观看| 亚洲二区在线播放| 亚洲第一视频在线观看| 国产一伦一伦一伦| 亚洲香肠在线观看| 欧美精品在线免费播放| 精品一区二区三区久久| 男女h黄动漫啪啪无遮挡软件| 亚洲韩国日本中文字幕| 日韩一级二级三级精品视频| 国产免费无遮挡| 日本熟妇色xxxxx日本免费看| 波多视频一区| 欧美1区视频| 最新av免费在线| 久久久爽爽爽美女图片| 国产精品69久久久久水密桃| 美日韩黄色片| 午夜精品久久久久久99热| 免费av在线电影| 日产亚洲一区二区三区| 91在线看黄| 亚洲国产欧美一区二区三区久久| 97精品在线视频| 在线观看精品一区二区三区| 久久噜噜噜精品国产亚洲综合| 麻豆精品在线看| 亚洲色图欧美视频| 色综合一本到久久亚洲91| 国产呦精品一区二区三区网站| 欧美r级电影| 国产成人精品亚洲线观看| 久久综合九色综合欧美就去吻| 91丨porny丨首页| 国产在视频线精品视频www666| 国产精品久久久久久久久久久不卡| 日本精品免费| 久久久久久久久久久久久久一区| 毛片.com| 国产日韩欧美成人| 成人动漫在线一区| 欧美图片自拍偷拍| 亚洲精品va在线观看| 欧美性巨大欧美| 中文字幕在线观看免费| 久久久一本二本三本| 无码国产精品久久一区免费| 一区二区三区国产豹纹内裤在线| 国产日产精品一区二区三区四区的观看方式| 欧美 日韩 精品| 尤物tv国产一区| 国产一区三区三区| www.在线播放| 青青草伊人久久| 一区二区不卡免费视频| 另类调教123区| 六月丁香久久丫| 超级砰砰砰97免费观看最新一期| 日韩视频一区在线观看| 国产麻豆精品入口在线观看| 黄色网页在线免费看| 亚洲国产欧美日韩另类综合| 欧美裸体一区二区三区| 亚洲国产日产av| 麻豆国产欧美一区二区三区r| 国产精品一卡二卡在线观看| 国产午夜三级一区二区三| 色婷婷视频在线观看| 毛片毛片毛片毛片毛片毛片| 亚洲熟妇无码一区二区三区导航| 欧美日韩成人免费视频| 日韩精品在线免费看| 中文视频在线观看| 最新国产成人av网站网址麻豆| 免费不卡在线观看av| 国产老头和老头xxxx×| 亚洲精品国产精品国自产观看| 中文字幕在线免费看线人| 二区三区四区视频| 97看剧电视剧大全| 国产一级一区二区| 中文字幕一区二区三区在线播放| 国产精品亚洲综合天堂夜夜| 亚洲三级av| 久久久久久久久久久久久久| 欧美妇女性影城| 久久久综合av| 日本精品视频一区| 亚洲综合色视频| 中文字幕免费观看| 日韩欧美资源站| 久久精品99久久| 激情黄产视频在线免费观看| 在线观看日韩精品视频| 久久久精品视频在线观看| 亚洲最大福利网站| 久久国产精品免费一区二区三区| 男女男精品视频站| 亚洲高清资源综合久久精品| 国产精品粉嫩| 国产日韩欧美在线看| 国产精品久久| 国产老女人av| 国产精品入口尤物| 日韩肉感妇bbwbbwbbw| 亚洲综合五月| 一级毛片免费视频| 色综合天天综合色综合av| 亚洲激情免费观看| 黄色高清视频网站| 台湾天天综合人成在线| 五月婷婷六月丁香激情| 午夜精品视频一区二区三区在线看| 不卡的av电影在线观看| 午夜在线小视频| 97精品人人妻人人| 久久久久亚洲精品中文字幕| 久久久不卡网国产精品二区| 国产成人精品福利一区二区三区| 制服.丝袜.亚洲.中文.综合懂色| 特色特色大片在线| 美女18一级毛片一品久道久久综合| 这里只有精品66| 欧美大片网站在线观看| 国产精品欧美亚洲| 91tv国产成人福利| 久久久久亚洲精品成人网小说| 色综合五月天导航| 亚洲综合色婷婷| 国产精品区一区二区三| 国产手机av在线| 91精品视频在线播放| 免费一区二区三区在线视频| 水蜜桃久久夜色精品一区的特点| 国产精品77777竹菊影视小说| 好吊一区二区三区| 国产精品久久久久久久久| 色婷婷精品视频| 嫩草香蕉在线91一二三区| 国产精品亚洲综合| 国产精品久久中文字幕| 欧美 日韩 国产 激情| sm捆绑调教国产免费网站在线观看| 伊人成人免费视频| 免费试看一区| 成人av网址在线| youjizz.com亚洲| 久久久久久久高清| 国产美女作爱全过程免费视频| 2019亚洲日韩新视频| 亚洲精品成人久久久998| 国产一级久久| 久久久久久国产| 欧美视频免费看欧美视频| 久久国产精品亚洲人一区二区三区| 男人在线资源站| 99久久精品免费看国产一区二区三区| 丝袜连裤袜欧美激情日韩| 亚洲av成人无码网天堂| 91av毛片| 亚洲欧洲韩国日本视频| 久久国产精品露脸对白| 亚洲精品一区中文字幕电影| 欧美性高潮床叫视频| 欧美电影免费观看高清| 主播大秀视频在线观看一区二区| 91精品国产综合久久久蜜臀粉嫩| 欧美精品一区三区| 国产91露脸中文字幕在线| 狠狠做深爱婷婷综合一区| 久久久九九九九| 老太做爰xxxx| 一区国产精品| 国产一区二区三区视频在线播放| 俺也去精品视频在线观看| 久久久精品黄色| 91极品女神在线| 黄色网页在线观看| 狠狠网亚洲精品| 日韩免费看片| 亚洲v.com| 国产又粗又硬又长又爽| 欧美亚洲国产成人精品| 欧美a免费在线| 亚洲国产精品电影在线观看| 色综合色狠狠综合色| 久久人人九九| 菠萝蜜视频在线观看www入口| 亚洲a视频在线观看| 免费看污视频的网站| 成人手机电影网| 久久久久久久一区二区三区| 日本不卡免费在线视频| 国产精品社区| 欧洲美女日日| 劲爆欧美第一页| 欧美日韩在线精品一区二区三区激情综| chinese偷拍一区二区三区| 一本之道久久| 最新中文字幕一区| 欧美日韩在线另类| 国产亚洲依依| 久久这里只有精品一区二区| 亚洲欧美一区二区三区| 成人av电影免费在线播放| 亚洲视频www| 不卡在线观看av| 国产日韩欧美一区二区三区视频| 国产精品天干天干在线综合| 精品一区二区三区免费看| 日韩欧美自拍偷拍| 永久免费看mv网站入口亚洲| 热久久美女精品天天吊色| 精品在线观看入口| 天天想你在线观看完整版电影免费| 中文字幕欧美三区| 亚洲黄网站在线观看| 久久久久99精品成人片试看| 日本a级片视频| 欧美在线观看日本一区| 亚洲激情视频在线观看| 91成人福利| 久久精品亚洲麻豆av一区二区| 国产精品麻豆99久久久久久| 中文字幕在线日亚洲9| 国产精品久久波多野结衣| 777777国产7777777| 欧美一区二区三区影院| 国产麻豆a毛片| 国内精品久久久久久中文字幕| 亚洲国产综合91精品麻豆| 久久精品免费在线| 美女黄色网址| 国产www免费| 亚洲女同同性videoxma| 日韩影视高清在线观看| theav精尽人亡av| 久久综合伊人| 在线亚洲不卡| 日韩不卡视频在线观看| 日产亚洲一区二区三区| 国产伦精品一区二区三区视频小说| 97人妻精品一区二区三区动漫| 国精产品一区二区三区有限公司| 国产香蕉久久精品综合网| 蜜桃视频在线一区| 日本高清视频www| 美女网站视频久久| 日韩区在线观看| 精品中文字幕一区二区三区av| 91精品国产色综合久久| 97久久久精品综合88久久|