日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

系统命名与 SQL 命名之争 - 第 1 部分

發(fā)布時(shí)間:2023/12/9 windows 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 系统命名与 SQL 命名之争 - 第 1 部分 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

創(chuàng)建數(shù)據(jù)庫對象的命名規(guī)范

創(chuàng)建數(shù)據(jù)庫對象時(shí),開發(fā)人員可以選擇一種命名方法,可以選擇遵循傳統(tǒng) IBM i 行為的系統(tǒng)命名模式 (*SYS),也可以選擇遵循SQL 標(biāo)準(zhǔn)規(guī)則的 SQL 命名規(guī)范 (*SQL)。

DB2 for i 與其他數(shù)據(jù)庫管理系統(tǒng) (DBMS) 之間的主要差別在于 DB2 for i 集成于操作系統(tǒng)之中。這種集成使 IBM i 用戶能夠使用自己的操作系統(tǒng)用戶配置文件和相關(guān)的訪問權(quán)限直接訪問 DB2 for i 數(shù)據(jù)庫。其他數(shù)據(jù)庫并未集成到操作系統(tǒng)之中,因此必須定義具有獨(dú)立訪問權(quán)限的特定數(shù)據(jù)庫用戶。

SQL 創(chuàng)建數(shù)據(jù)庫對象時(shí)使用的默認(rèn)命名取決于這些 SQL DDL(數(shù)據(jù)定義語言)命令的環(huán)境。

對于所有服務(wù)器端 SQL 環(huán)境(比如用于啟動(dòng) SQL 交互會(huì)話的 STRSQL 或用來運(yùn)行 SQL 語句的 RUNSQLSTM)以及 HLL(高級語言)程序(比如 RPG 或 COBOL)中的嵌入式 SQL 而言,默認(rèn)命名是系統(tǒng)命名

基于客戶端的 SQL 環(huán)境中使用的默認(rèn)命名值則通常是 SQL 命名,例如 System i Navigator、IBM Rational Developer for Power Systems Software (RDp)、中間件(ODBC、JDBC 等)或第三方 SQL 工具。

為了避免對象權(quán)限和訪問方法匹配不當(dāng),您需要確定在您的應(yīng)用程序環(huán)境中最適合使用的是系統(tǒng)命名還是 SQL 命名。在某些環(huán)境中,您可能需要更改默認(rèn)命名,以匹配您的應(yīng)用程序環(huán)境中使用的命名規(guī)范。

System i Navigator 界面

如果您希望使用 System i Navigator 界面來創(chuàng)建數(shù)據(jù)庫對象,那么可以按照如下方法預(yù)定義要使用的命名:

打開您的連接,右鍵單擊數(shù)據(jù)庫圖標(biāo),選擇 Preferences 任務(wù),如 圖 1. System i Navigator – 設(shè)置首選項(xiàng) 所示。

Preferences 窗口提供了 3 個(gè)選項(xiàng)。Connection (all Systems) 選項(xiàng)允許您預(yù)定義要為未來的連接使用的命名規(guī)范。這項(xiàng)設(shè)置也將用作運(yùn)行 SQL 腳本和生成 SQL 執(zhí)行的未來默認(rèn)命名值,但不會(huì)影響任何現(xiàn)有窗口。


圖 1. System i Navigator – 設(shè)置首選項(xiàng)

System i Navigator 的運(yùn)行 SQL 腳本工具

如果您希望使用運(yùn)行 SQL 腳本工具來執(zhí)行一個(gè)文件內(nèi)存儲(chǔ)的 SQL 腳本或者交互地輸入的 SQL 腳本,那么可以通過單擊 Connection 下拉菜單并選擇 JDBC Setup 任務(wù)來控制命名規(guī)范。可以在 Format 選項(xiàng)卡中設(shè)置命名規(guī)范。


圖 2. System i Navigator – 運(yùn)行 SQL 腳本 - 設(shè)置命名規(guī)范

RUNSQLSTM – 運(yùn)行 SQL 語句

如果您希望通過 RUNSQLSTM (運(yùn)行 SQL 語句)執(zhí)行存儲(chǔ)在源物理文件成員或者 IFS(集成文件系統(tǒng))中的 SQL 語句,那么可以在 RUNSQLSTM 命令中使用 Naming 參數(shù)指定命名規(guī)范,如下例所示。使用 SQL 命名即可執(zhí)行指定的 SQL 腳本。


清單 1. RUNSQLSTM 設(shè)置命名規(guī)范
RUNSQLSTM SRCFILE(MYSCHEMA/QSQLSRC) SRCMBR(MYSCRIPT) NAMING(*SQL)

HLL 程序中的嵌入式 SQL

如果您希望在 RPG 或 COBOL 等 HTLL 程序內(nèi)使用嵌入式 SQL,以便處理您的表中的數(shù)據(jù)庫,或者創(chuàng)建新數(shù)據(jù)庫對象,那么默認(rèn)命名設(shè)置將是系統(tǒng)命名。

如果您希望使用 SQL 命名,那么可以在編譯命令中預(yù)先定義命名規(guī)范(CRTSQLRPGI、CRTSQLCBLI 或者 CRTSQLCI,具體取決于編程模型),如下例所示:


清單 2. 創(chuàng)建一個(gè)使用 SQL 命名的嵌入式 SQL 程序
CRTSQLRPGI OBJ(MYPGMLIB/MYSQLPGM) SRCFILE(MYSRCLIB/QRPGLESRC) SRCMBR(MYMBR) OPTION(*SQL)

除了在編譯命令中指定命名方法之外,還可以將其包含在您的源代碼之中,只需添加一條 SET OPTION 語句即可(如下例所示)。SET OPTION 語句必須是源代碼中的第一條語句,并且包含您希望設(shè)置的所有選項(xiàng)。


清單 3. 設(shè)置命名規(guī)范的 SET OPTION 語句
/Free Exec SQL Set Option Commit=*NONE, Naming=*SQL DatFmt=*ISO, CloSQLCsr=*ENDACTGRP; //All other source code including embedded SQL statements /End-Free

IBM i Access for Windows ODBC 驅(qū)動(dòng)程序

可以使用 IBM i Access for Windows - ODBC 管理界面或連接關(guān)鍵字,為 ODBC 連接指定命名規(guī)范。

下一張圖展示了在 ODBC 管理界面的 Server 選項(xiàng)卡中控制的命名規(guī)范。


圖 3. ODBC 設(shè)置

JDBC 訪問

可以通過在連接 URL 中指定 JDBC 驅(qū)動(dòng)程序的連接屬性來控制 JDBC 訪問命名規(guī)范。

naming 屬性的連接屬性支持使用 sql 和 system 值來指定命名規(guī)范。默認(rèn)設(shè)置為 SQL 命名。

使用系統(tǒng)命名時(shí),可以使用 libraries 屬性預(yù)定義一個(gè)庫列表,如下例所示。


清單 4. JDBC 設(shè)置命名規(guī)范
conn = DriverManager.getConnection("jdbc:db2:*local: ... ... naming=system;libraries=MYLIBA,MYLIBB,MYLIBX");

IBM i Access for Windows ADO.NET 提供程序

使用 ADO.NET 時(shí),可在建立連接時(shí)設(shè)置系統(tǒng)命名的命名規(guī)范和庫列表。iDB2Connection 對象連接到 DB2 for i。命名規(guī)范以連接字符串屬性的形式提供。

以下代碼展示了如何為 iDB2Connection 對象設(shè)置系統(tǒng)命名和庫列表:


清單 5. ADO.NET 設(shè)置命名規(guī)范
iDB2Connection conn = new iDB2Connection("DataSource=abc; userid=XXX;password=YYY; Naming=System; LibraryList=*USRLIBL,MYLIB");

SQL CLI - 調(diào)用級接口

使用 SQL CLI 函數(shù)時(shí),命名規(guī)范是一個(gè)可以通過執(zhí)行 SQLSetConnectAttr 函數(shù)設(shè)置的屬性。為了將命名規(guī)范設(shè)置為系統(tǒng)命名,必須將 SQL_ATTR_DBC_SYS_NAMING 常量傳遞給屬性參數(shù),并將 SQL_TRUE 常量傳遞給屬性值參數(shù),如下例所示。


清單 6. 使用 SQLCLI 設(shè)置連接屬性
rc = SQLSetConnectAttr(ConnHandle: SQL_ATTR_DBC_SYS_NAMING: SQL_TRUE: 4);

STRSQL – 啟動(dòng) SQL 交互會(huì)話

如果您希望更改在交互式 SQL 中運(yùn)行 SQL 語句所用的命名,可執(zhí)行 STRSQL CL 命令,按下功能鍵 F13=Services,并選擇選項(xiàng) 1(更改會(huì)話屬性)。

回頁首

架構(gòu) – 包含數(shù)據(jù)庫對象的容器

架構(gòu)就是用于存儲(chǔ)數(shù)據(jù)庫對象的容器。在 IBM i 中,架構(gòu)這個(gè)術(shù)語的用法等同于庫。

架構(gòu)或庫均可使用 CRTLIB(創(chuàng)建庫)CL 命令或 CREATE SCHEMA SQL 語句創(chuàng)建。CRTLIB 命令僅創(chuàng)建一個(gè)空容器,SQL 語句則將自動(dòng)添加一個(gè)日志、一個(gè)日志接收器和一些包含有關(guān)此架構(gòu)中的所有數(shù)據(jù)庫對象的信息的目錄視圖。

使用 CRTLIB 命令創(chuàng)建庫時(shí),庫的所有者可以是創(chuàng)建庫的用戶配置文件,也可以是組配置文件。

庫的所有者是用戶還是組配置文件取決于用戶配置文件的 OWNER 選項(xiàng)設(shè)置。如果 OWNER 選項(xiàng)設(shè)置為 *GRPPRF,則 GRPPRF 選項(xiàng)中指定的用戶配置文件將成為該用戶創(chuàng)建的所有對象的所有者,否則用戶配置文件將成為對象所有者。

下面的示例展示了如何使用 CHGUSRPRF(更改用戶配置文件)將 PGMRGRP2 用戶配置文件未來創(chuàng)建的所有對象的所有者設(shè)置為 PGMR 組配置文件。


清單 7. 更改用戶配置文件將所有者設(shè)置為組配置文件
CHGUSRPRF USRPRF(PGMRGRP2) GRPPRF(QPGMR) OWNER(*GRPPRF)

本文中創(chuàng)建的所有實(shí)例數(shù)據(jù)庫對象均由名為 PGMRGRP2 的用戶配置文件創(chuàng)建。這個(gè)用戶配置文件與 QPGMR 組配置文件相關(guān)聯(lián)。因此,QPGMR 組配置文件將作為 PGMRGRP2 創(chuàng)建的全部數(shù)據(jù)庫對象的所有者。

使用系統(tǒng)命名創(chuàng)建架構(gòu)

使用 CREATE SCHEMA 語句,通過系統(tǒng)命名創(chuàng)建一個(gè)架構(gòu)時(shí),將應(yīng)用以下規(guī)則:

  • 架構(gòu)的所有者是用戶配置文件還是組配置文件取決于用戶配置文件定義中的 OWNER 選項(xiàng)設(shè)置。
  • 所有者擁有 *ALL 對象權(quán)限,而 *PUBLIC 對象權(quán)限以 QCRTAUT(創(chuàng)建默認(rèn)公共權(quán)限)系統(tǒng)值為依據(jù),其默認(rèn)值是 *CHANGE。

使用 CRTLIB 命令或者 CREATE SCHEMA 語句通過系統(tǒng)命名創(chuàng)建架構(gòu)或庫將得到相同的所有權(quán)和同樣的對象權(quán)限。

PGMRGRP2 用戶配置文件使用以下 SQL 語句、利用系統(tǒng)命名創(chuàng)建了兩個(gè)架構(gòu)(PGMRUSR2 和 PGMRXXX2):


清單 8. 架構(gòu)創(chuàng)建示例
CREATE SCHEMA PGMRXXX2; CREATE SCHEMA PGMRUSR2;

兩個(gè)架構(gòu)的所有者都是 QPGMR 組配置文件。組配置文件擁有 *ALL 對象權(quán)限,而 *PUBLIC 權(quán)限根據(jù) QCRTAUT 系統(tǒng)值設(shè)置為 *CHANGE。


圖 4. 使用系統(tǒng)命名創(chuàng)建架構(gòu)

可以使用 EDTOBJAUT(編輯對象權(quán)限)或 System i Navigator Permission 界面來顯示、設(shè)置或刪除對象所有者和所指派的對象權(quán)限。使用 System i Navigator 時(shí),可以右鍵單擊一個(gè)數(shù)據(jù)庫對象并選擇 Permissions 任務(wù)來訪問該界面。

對象所有權(quán)可以使用 CHGOBJOWN(更改對象所有者)CL 命令進(jìn)行更改。不存在可使用 SQL 更改對象所有者的 SQL 語句或者 System i Navigator 界面。

使用 SQL 命名創(chuàng)建架構(gòu)

使用 SQL 命名創(chuàng)建架構(gòu)時(shí),規(guī)則將更加復(fù)雜:

  • 如果一個(gè)用戶配置文件與已有架構(gòu)同名,則架構(gòu)的所有者和在此架構(gòu)中 創(chuàng)建的所有對象的所有者均為該用戶配置文件。例如,一名開發(fā)人員為基于 Web 的新應(yīng)用程序創(chuàng)建了一個(gè)名為 WEBERP 的架構(gòu)。如果恰好有一位叫做 Weber Peter 的員工的用戶配置文件也是 WEBERP。那么 WEBERP 用戶配置文件將成為 WEBERP 架構(gòu)的所有者。
  • 如果沒有與架構(gòu)名稱匹配的用戶配置文件名稱,那么架構(gòu)的所有者就是執(zhí)行 CREATE SCHEMA 語句的作業(yè)的用戶配置文件。使用 SQL 命名創(chuàng)建架構(gòu)時(shí),用戶配置文件定義的 OWNER 選項(xiàng)設(shè)置將被忽略。

所有者是惟一對架構(gòu)擁有任意權(quán)限的用戶配置文件。如果其他用戶需要擁有架構(gòu)的對象權(quán)限,那么所有者或具有安全管理權(quán)限 (*SECADM) 或全部對象權(quán)限 (*ALLOBJ) 的用戶配置文件可以使用 GRTOBJAUT(授予對象權(quán)限)CL 命令來授予該架構(gòu)的權(quán)限。

不存在可用于為架構(gòu)授予對象權(quán)限的 SQL 語句。

  • 對于使用 SQL 命名創(chuàng)建的數(shù)據(jù)庫對象,*PUBLIC 對象授權(quán)始終設(shè)置為 *EXCLUDE。QCRTAUT 系統(tǒng)值將被忽略。

為了對比系統(tǒng)與 SQL 命名之間的差異,我們刪除了之前使用系統(tǒng)命名的架構(gòu),并由相同的用戶使用 SQL 命名重新創(chuàng)建它。

在對比兩種模式的所有權(quán)和對象權(quán)限時(shí),我們會(huì)發(fā)現(xiàn)以下幾種差異:

  • PGMRXXX2 架構(gòu)的所有者是 PGMRGRP2,也就是架構(gòu)的創(chuàng)建者。PGMRGRP2 用戶配置文件的所有者設(shè)置被忽略。
  • 所 有者 PGMRGRP2 將獲得 *ALL 對象權(quán)限,而 *PUBLIC 對象權(quán)限則設(shè)置為 *EXCLUDE。相比之下,在使用系統(tǒng)命名的架構(gòu)中,*PUBLIC 對象權(quán)限依賴于 QCRTAUT 系統(tǒng)值。因此,同屬 QPGMR 組配置文件的另外一名開發(fā)人員不允許修改架構(gòu)或者在此架構(gòu)內(nèi)創(chuàng)建對象。如果企業(yè)廣泛使用組配置文件,而且任何開發(fā)人員創(chuàng)建的所有對象的所有者都必須成為組 配置文件,那么這種行為會(huì)造成一些問題。
  • 架構(gòu) PGMRUSR2 的所有者是 PGMRUSR2,因?yàn)榇嬖谝粋€(gè)與此名稱相同的現(xiàn)有用戶配置文件。之前,在使用系統(tǒng)命名創(chuàng)建架構(gòu)時(shí),兩個(gè)架構(gòu)的所有者均為 QPGMR 組配置文件。
  • PGMRUSR2 架構(gòu)的所有者 PGMRUSR2 將獲得 *ALL 對象權(quán)限,而 *PUBLIC 權(quán)限設(shè)置為 *EXCLUDE。即便用戶 PGMRGRP2 能夠創(chuàng)建架構(gòu) PGMRUSR2,該用戶也無法獲得該架構(gòu)的任何權(quán)限。PGMRGRP2 無法修改架構(gòu),也無法在此架構(gòu)內(nèi)創(chuàng)建或修改任何對象。

下面的屏幕快照顯示了使用 SQL 命名創(chuàng)建的架構(gòu)的特權(quán)(也稱為權(quán)限)。


圖 5. 使用 SQL 命名創(chuàng)建架構(gòu)

回頁首

表、視圖和索引 – 維護(hù)數(shù)據(jù)的對象

表是在多個(gè)列和行中存儲(chǔ)持久用戶數(shù)據(jù)的對象。

視圖和索引是與一個(gè)表相關(guān)但不包含任何數(shù)據(jù)的數(shù)據(jù)庫對象。

使用系統(tǒng)命名創(chuàng)建表、視圖和索引。

確定所有權(quán)、應(yīng)用對象權(quán)限的規(guī)則與用于創(chuàng)建架構(gòu)的規(guī)則相匹配。所有者是對象的創(chuàng)建者,或者組配置文件,*PUBLIC 對象權(quán)限設(shè)置為 QCRTAUT 系統(tǒng)值。

在下一個(gè)示例中(圖 6. 使用系統(tǒng)命名創(chuàng)建表),表 EMPLOYEE 是在兩種不同的架構(gòu)(PGMRUSR 和 PGMRXXX)中使用系統(tǒng)命名創(chuàng)建的,使用的 SQL 語句如下:


清單 9. 創(chuàng)建 EMPLOYEE 表
Create Table MySchema/Employee (FirstName VarChar(50) Not NULL Default '', Name VarChar(50) Not NULL Default '', Street VarChar(50) Not NULL Default '', ZipCode VarChar(15) Not NULL Default '', City VarChar(50) Not NULL Default '', Country Char(3) Not NULL Default '', Birthday Date Not NULL);

兩種架構(gòu)之前都是由用戶配置文件 PGMRGRP2 使用系統(tǒng)命名,通過 CREATE SCHEMA 語句創(chuàng)建的。兩種架構(gòu)的所有者均為 QPGMR 組配置文件,都基于 PGMRGRP2 用戶配置文件的 OWNER 設(shè)置。組配置文件是 PGMRUSR 架構(gòu)中創(chuàng)建的表的所有者,即便存在 PGRMRUSR 用戶配置文件時(shí)也是如此。

所有者用戶配置文件 QPGMR 擁有 *ALL 對象權(quán)限,而 *PUBLIC 權(quán)限則根據(jù) QCRTAUT 系統(tǒng)值設(shè)置為 *CHANGE。

因而,與 QPGMR 組配置文件相關(guān)聯(lián)的所有用戶都允許訪問、修改甚至是刪除 PGMRXXX 和 PGMRUSR 這兩種架構(gòu)中的 EMPLOYEE 表。


圖 6. 使用系統(tǒng)命名創(chuàng)建表

使用 SQL 命名創(chuàng)建表、視圖和索引。

使用 SQL 命名時(shí),會(huì)應(yīng)用不同的規(guī)則:

  • 如果某個(gè)用戶配置文件的名稱與在其中創(chuàng)建表、視圖或索引的架構(gòu)的名稱相同,那么該用戶配置文件就是表的所有者。
  • 如果不存在與架構(gòu)名稱相同的用戶配置文件,那么所有者將是用戶配置文件或者組配置文件,具體情況取決于用戶配置文件定義中的 OWNER 選項(xiàng)設(shè)置。
  • 使用 SQL 命名創(chuàng)建架構(gòu)以外的數(shù)據(jù)庫對象時(shí),用戶配置文件定義中的 OWNER 選項(xiàng)設(shè)置將被考慮,組配置文件將成為數(shù)據(jù)庫對象的所有者。

圖 7. 使用 SQL 命名在與用戶配置文件不匹配的架構(gòu)中創(chuàng)建表 展示了用戶 PGMRGRP2 在架構(gòu) PGMRXXX2 中創(chuàng)建的 EMPLOYEE 表的權(quán)限結(jié)果。

EMPLOYEE 表的所有者是 QPGMR 組配置文件。所有者 QPGMR 的對象權(quán)限值是 *ALL,而 *PUBLIC 權(quán)限設(shè)置為 *EXCLUDE。因此,與 QPGMR 組配置文件相關(guān)的所有用戶均不允許訪問 EMPLOYEE 表,而且也不允許修改或刪除表。


圖 7. 使用 SQL 命名在與用戶配置文件不匹配的架構(gòu)中創(chuàng)建表

在下一個(gè)示例(圖 8. 使用 SQL 命名在匹配用戶配置文件的架構(gòu)中創(chuàng)建表)中,用戶 PGMRGRP2 嘗試在 PGMRUSR2 架構(gòu)中創(chuàng)建 EMPLOYEE 表。

該架構(gòu)之前是由用戶 PGMRGRP2 使用 SQL 命名,通過 CREATE SCHEMA 語句創(chuàng)建的。由于的確有一個(gè)名為 PGMRUSR2 的用戶配置文件,因此該用戶配置文件將成為架構(gòu)的所有者,獲得該架構(gòu)的 *ALL 對象權(quán)限,而 *PUBLIC 權(quán)限則設(shè)置為 *EXCLUDE。

CREATE TABLE 語句執(zhí)行將失敗,并提供 24501 SQL 狀態(tài)值,這是因?yàn)?PGMRGRP2 未獲得 PGMRUSR2 架構(gòu)的授權(quán),即便該用戶創(chuàng)建了此架構(gòu)也是如此。(圖 5. 使用 SQL 命名創(chuàng)建架構(gòu) 展示了 PGMRGRP2 不具備 PGMRUSR2 架構(gòu)權(quán)限的情況)。

為了允許 PGMRGRP2 使用 SQL 命名在 PGMRUSR2 架構(gòu)中創(chuàng)建表或任何對象,用戶配置文件或者相關(guān)的 QPGMR 組配置文件必須獲得架構(gòu)的顯式授權(quán),執(zhí)行 GRTOBJAUT 或 EDTOBJAUT 命令均可實(shí)現(xiàn)此目標(biāo)。


圖 8. 使用 SQL 命名在與用戶配置文件匹配的架構(gòu)中創(chuàng)建表

假設(shè) QPGMR 組配置文件已顯式獲得了 PGMRUSR2 架構(gòu)的權(quán)限,那么 PGMRGRP2 用戶就能夠在這個(gè)架構(gòu)中創(chuàng)建 EMPLOYEE 表。

由于表是使用 SQL 命名創(chuàng)建的,所以 PGMRUSR2 是一個(gè)現(xiàn)有用戶配置文件,因此這個(gè)用戶配置文件將再次成為 EMPLOYEE 表的所有者,擁有 *ALL 對象權(quán)限,且 *PUBLIC 對象權(quán)限設(shè)置為 *EXCLUDE,如 圖 9. 架構(gòu)特權(quán) = 用戶配置文件和表 中所示。

在這種情況下,PGMRGRP2 用戶能夠創(chuàng)建表,但不允許使用表。PGMRGRP2 用戶或者 QPGMR 組配置文件必須獲得顯式授權(quán)才能訪問它們之前創(chuàng)建的對象。


圖 9. 架構(gòu)特權(quán) = 用戶配置文件和表

可能出現(xiàn)問題的情況

使用 SQL 命名為現(xiàn)有應(yīng)用程序創(chuàng)建數(shù)據(jù)庫對象可能會(huì)在 IBM i 上導(dǎo)致意外問題。

假設(shè)現(xiàn)有原材料管理應(yīng)用程序的所有數(shù)據(jù)庫對象均存儲(chǔ)在一個(gè)名為 MAWI 的庫中。這個(gè)庫是很久之前使用 CRTLIB 命令創(chuàng)建的。MAWI 庫的所有者是 QPGMR 組配置文件。MAWI 庫的 *PUBLIC 對象權(quán)限是 *CHANGE。

在這個(gè)系統(tǒng)中,所有用戶配置文件名稱都結(jié)合了姓氏的前兩個(gè)字符和名字的前兩個(gè)字符。人力資源部門的一名數(shù)據(jù)錄入員工叫做 Willy Maier,因此他的用戶配置文件是 MAWI。

如果一名開發(fā)人員使用 SQL 命名在 MAWI 庫中創(chuàng)建了一個(gè)新表或視圖,那么這個(gè)新表的所有者將是 Willy Maier,原因在于他的用戶配置文件與庫名稱匹配。僅有 MAWI 用戶配置文件才具有新表或者視圖的訪問權(quán)限。開發(fā)人員和其他任何用戶都沒有此權(quán)限,因?yàn)?SQL 命名默認(rèn)情況下會(huì)強(qiáng)制性將 *PUBLIC 訪問權(quán)限設(shè)置為 *EXCLUDE。

回頁首

SQL 例程

SQL 例程就是可執(zhí)行的 SQL 對象,類似于高級語言 (HLL) 程序。SQL 例程這個(gè)術(shù)語用于表示存儲(chǔ)過程、觸發(fā)器或者用戶定義的函數(shù) (UDF)。

這些例程是使用 SQL 或者高級語言(例如 RPG 或 COBOL)編寫的。無論是哪種情況,存儲(chǔ)過程或 UDF 都是使用以下 SQL 語句之一創(chuàng)建的:

  • CREATE PROCEDURE
  • CREATE FUNCTION

SQL 例程的所有權(quán)和對象權(quán)限

對于系統(tǒng)命名和 SQL 命名來說,確定對象所有權(quán)和權(quán)限的規(guī)則均與用戶創(chuàng)建表、視圖或索引的規(guī)則相同。

例程中嵌入的 SQL 語句將根據(jù)創(chuàng)建例程時(shí)使用的命名規(guī)范執(zhí)行,即便可能使用不同的命名模式在運(yùn)行時(shí)環(huán)境中調(diào)用 SQL 例程。

例如,某個(gè)存儲(chǔ)過程是通過使用 SQL 命名的接口來創(chuàng)建的。如果從包含嵌入式 SQL、默認(rèn)使用系統(tǒng)命名的 RPG 程序中調(diào)用該存儲(chǔ)過程,那么 RPG 程序中的嵌入式 SQL 語句會(huì)使用系統(tǒng)命名來執(zhí)行,而存儲(chǔ)過程內(nèi)的 SQL 語句會(huì)使用 SQL 命名來執(zhí)行。

例程對象的所有權(quán)和訪問權(quán)限僅用于調(diào)用此例程。對象所有權(quán)和權(quán)限值可能會(huì)也可能不會(huì)應(yīng)用于例程本身執(zhí)行的 SQL 語句。應(yīng)用于例程運(yùn)行的 SQL 請求的權(quán)限 ID(或者用戶配置文件)取決于創(chuàng)建例程時(shí)使用的命名規(guī)范,以及例程所執(zhí)行的 SQL 語句是靜態(tài)的還是動(dòng)態(tài)準(zhǔn)備的

使用系統(tǒng)命名時(shí),DB2 會(huì)利用調(diào)用例程的用戶配置文件。使用 SQL 命名執(zhí)行例程內(nèi)的靜態(tài) SQL 語句時(shí),DB2 在默認(rèn)情況下會(huì)使用例程的所有者對靜態(tài) SQL 語句執(zhí)行授權(quán)處理。

默認(rèn)情況下,調(diào)用例程的用戶配置文件始終應(yīng)用于例程執(zhí)行的動(dòng)態(tài) SQL 語句,與使用系統(tǒng)命名還是 SQL 命名無關(guān)。

應(yīng)用于靜態(tài)和動(dòng)態(tài) SQL 語句的安全性驗(yàn)證和執(zhí)行的用戶配置文件可以在 SET OPTION 語句中手動(dòng)控制,方法是指定 USRPRF(靜態(tài) SQL 語句的用戶配置文件)和 DYNUSRPRF(動(dòng)態(tài) SQL 語句的用戶配置文件)選項(xiàng)。

USERPRF 選項(xiàng)可以設(shè)置為以下值之一:

  • *NAMING:*USER 用于系統(tǒng)命名,*OWNER 用于 SQL 命名
  • *OWNER:靜態(tài) SQL 語句使用所有者的權(quán)限執(zhí)行
  • *USER:靜態(tài) SQL 語句使用用戶權(quán)限執(zhí)行

選項(xiàng) DYNUSRPRF 可以設(shè)置為:

  • *USER:系統(tǒng)命名和 SQL 命名的默認(rèn)值。動(dòng)態(tài) SQL 語句使用用戶權(quán)限執(zhí)行
  • *OWNER:動(dòng)態(tài) SQL 語句使用所有者權(quán)限執(zhí)行

如果您正在使用 SQL 命名,希望動(dòng)態(tài) SQL 語句由執(zhí)行靜態(tài) SQL 語句的同一個(gè)用戶配置文件執(zhí)行,那么可能需要同時(shí)將這兩個(gè)選項(xiàng) USRPRF 和 DYNUSRPRF 設(shè)置為 *OWNER 或 *USER。

以下 SQL 語句顯示了使用 SQL 命名創(chuàng)建的一個(gè) SQL 存儲(chǔ)過程的刪減版源代碼。在運(yùn)行時(shí),將根據(jù) SET OPTION 子句中指定的值,由 *OWNER 來執(zhí)行過程中嵌入的所有靜態(tài)和動(dòng)態(tài) SQL 語句。


清單 10. 創(chuàng)建過程
Create Procedure PGMRUSR2.HSINFO (In Parm1 Integer) Dynamic Result Sets 1 Language SQL Set Option DYNUSRPRF = *OWNER, USRPRF = *NAMING Begin /* Routine code goes here */ End ;

回頁首

觸發(fā)器

觸發(fā)器是特殊類型的 SQL 例程。觸發(fā)器程序鏈接到一個(gè)表或者一個(gè) SQL 視圖,并且通過數(shù)據(jù)庫管理器為指定事件(插入、更新或刪除)激活它。

觸發(fā)器程序的所有權(quán)與其他所有 SQL 例程的確定方式相同,但對象和執(zhí)行權(quán)限是由 CREATE TRIGGER 語句單獨(dú)設(shè)置的。

*PUBLIC 對象權(quán)限將設(shè)置為 *EXCLUDE,無論使用的是系統(tǒng)命名還是 SQL 命名。對于使用系統(tǒng)命名創(chuàng)建的其他所有 SQL 對象,*PUBLIC 對象權(quán)限都將設(shè)置為 QCRTAUT 系統(tǒng)值。

下面的示例展示了使用系統(tǒng)命名創(chuàng)建的 SQL 觸發(fā)器的源代碼。


清單 11. 創(chuàng)建觸發(fā)器
CREATE TRIGGER PGMRUSR/TRGEMPLOYEE BEFORE INSERT ON PGMRUSR/EMPLOYEE REFERENCING NEW ROW AS N FOR EACH ROW MODE DB2ROW BEGIN ATOMIC /* Source code goes here */ END;

圖 10 展示了使用系統(tǒng)命名創(chuàng)建的這個(gè)觸發(fā)器程序的特權(quán)圖。所有者是 QPGMR 組配置文件,所有者擁有所有對象權(quán)限,而 *PUBLIC 對象權(quán)限設(shè)置為 *EXCLUDE。


圖 10. 使用系統(tǒng)命名創(chuàng)建的觸發(fā)器

如果需要使用 SQL 命名在與某個(gè)現(xiàn)有用戶配置文件同名的架構(gòu)中創(chuàng)建觸發(fā)器程序,那么必須顯式為創(chuàng)建者授予表或視圖的權(quán)限,或者為其提供特殊權(quán)限 *ALLOBJ 或 *SECADM。觸發(fā)器程序的所有者是與架構(gòu)同名的用戶,或者創(chuàng)建者用戶配置文件或其相關(guān)的組配置文件,具體取決于創(chuàng)建者的用戶配置文件定義中的 OWNER 選項(xiàng)設(shè)置。

下面的 圖 11. 使用 SQL 命名創(chuàng)建的觸發(fā)器 展示了由用戶 PGMRGRP2 使用 SQL 命名在架構(gòu) PGMRUSR2 中創(chuàng)建的觸發(fā)器程序的特權(quán)圖。由于 PGMRUSR2 也是一個(gè)現(xiàn)有用戶配置文件,因此這個(gè)用戶配置文件將成為觸發(fā)器程序的所有者。所有者 PGMRUSR2 將獲得 *ALL 對象權(quán)限,而 *PUBLIC 對象權(quán)限則設(shè)置為 *EXCLUDE。


圖 11. 使用 SQL 命名創(chuàng)建的觸發(fā)器

無論創(chuàng)建觸發(fā)器時(shí)使用了哪種命名規(guī)范,觸發(fā)器都將使用通過觸發(fā)器程序所有者采用的權(quán)限激活。

回頁首

授予/撤銷權(quán)限

無論數(shù)據(jù)庫對象是使用系統(tǒng)命名還是 SQL 命名創(chuàng)建的,都必須仔細(xì)檢查所有權(quán)和對象權(quán)限。如果默認(rèn)行為不能滿足您的安全性需求,那么可以使用 GRANT 或 REVOKE SQL 語句來調(diào)整設(shè)置。

任何用戶或組配置文件的對象權(quán)限(即便是 *PUBLIC)均可使用 GRANT 語句設(shè)置。如果對象授權(quán)必須移除,則可以使用 REVOKE 語句。可以同時(shí)使用 GRANT 和 REVOKE 語句來處理所有可訪問或執(zhí)行的數(shù)據(jù)庫對象(架構(gòu)和觸發(fā)器除外)。

此外還可以使用 GRTOBJAUT(授予對象權(quán)限)和 EDTOBJAUT(編輯對象權(quán)限)CL 命令來修改數(shù)據(jù)庫對象的對象權(quán)限。不過,使用 CL 命令和 SQL 語句提供權(quán)限時(shí)略有差異。

回頁首

設(shè)置會(huì)話權(quán)限

在使用 SQL 命名時(shí),SET SESSION AUTHORIZATION 和 SET SESSION USER 語句可能會(huì)影響對象所有權(quán)和權(quán)限。

在建立一個(gè)連接之后,可以使用 SET SESSION AUTHORIZATION 或 SET SESSION 語句,將用戶配置文件切換到另外一個(gè)用戶配置文件(權(quán)限 ID),并采用該用戶配置文件的訪問權(quán)限。您已經(jīng)學(xué)習(xí)了在使用 SQL 命名創(chuàng)建對象時(shí)如何將用戶配置文件值應(yīng)用于對象所有權(quán)和授權(quán)。

回頁首

結(jié)束語

至此,您應(yīng)該已經(jīng)很好地了解了為何使用系統(tǒng)命名和 SQL 命名創(chuàng)建的 DB2 對象的所有權(quán)和訪問權(quán)限指派方式有所不同。

由于存在這些不同的行為,因此您應(yīng)該為使用 SQL 創(chuàng)建的所有數(shù)據(jù)庫對象(或者至少是一個(gè)架構(gòu)中的所有數(shù)據(jù)庫對象)確定一種命名規(guī)范方法。

  • 如果您的目的是設(shè)計(jì)一個(gè)能夠在不同數(shù)據(jù)庫系統(tǒng)上運(yùn)行的應(yīng)用程序,那么 SQL 命名是實(shí)現(xiàn)最大限度的可遷移性的正確方法。
  • 如果您僅使用 DB2 for i,而且必須維護(hù)較為陳舊的應(yīng)用程序與多種基于 DDS 的對象和 SQL 數(shù)據(jù)庫對象,還要使用 IBM i 特有的對象權(quán)限(例如組配置文件),那么系統(tǒng)命名將是您更好的選擇。

現(xiàn)在,祝您使用系統(tǒng)命名或 SQL 命名規(guī)劃、設(shè)計(jì)、創(chuàng)建和維護(hù)數(shù)據(jù)庫對象時(shí)一帆風(fēng)順。

總結(jié)

以上是生活随笔為你收集整理的系统命名与 SQL 命名之争 - 第 1 部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

香蕉精品在线观看 | 成人性生交大片免费看中文网站 | 999国产在线 | 狠狠激情中文字幕 | 久久成人国产精品一区二区 | 少妇视频在线播放 | 91九色成人蝌蚪首页 | 免费黄色网址网站 | 免费午夜av | 成人黄色小说在线观看 | 欧美片一区二区三区 | 五月天亚洲激情 | 亚洲欧美日韩不卡 | 在线看中文字幕 | 久久久综合香蕉尹人综合网 | 亚洲成a人片77777kkkk1在线观看 | 天天色天天爱天天射综合 | 国产天天综合 | 91精品视频播放 | 色小说在线 | 亚洲视频精品在线 | 99中文字幕在线观看 | 精品视频在线免费观看 | 久久精品91久久久久久再现 | 麻豆视频入口 | 天天干天天天 | 96国产在线 | 91视频高清免费 | 91av原创| 久久精品系列 | 狠狠色伊人亚洲综合成人 | 成人高清在线 | 天天色宗合 | 国产精品一区二区电影 | 欧美精品一区二区性色 | 91桃色国产在线播放 | 国产精品9999 | 五月天国产精品 | 中文字幕国产一区二区 | av免费在线播放 | 日本中文字幕在线电影 | 久久人人97超碰精品888 | 天天操天天射天天添 | 国产不卡毛片 | 伊人狠狠色丁香婷婷综合 | 午夜精品久久久久久久99 | 精品产品国产在线不卡 | 天天综合婷婷 | av资源在线看| 免费福利在线播放 | 91福利专区| 午夜黄色| 亚洲精品在线免费播放 | 久久综合久久综合这里只有精品 | 激情久久久久久久久久久久久久久久 | 国产真实在线 | 精品国产乱码久久久久 | 国精产品一二三线999 | 丁香久久婷婷 | 免费在线观看成人 | 99免费看片 | 国产999在线观看 | 久草精品在线 | 91丨九色丨蝌蚪丨对白 | 亚洲国产视频直播 | 在线观看mv的中文字幕网站 | 日韩av网页 | 国产成人一级电影 | 在线视频精品 | 最近中文字幕免费大全 | 国产私拍在线 | 91九色porny在线 | 日日干 天天干 | 国产精品女同一区二区三区久久夜 | 色综合久久五月 | 久久99热精品 | 国产一区二区在线观看视频 | 午夜少妇 | 亚洲国产资源 | 婷婷开心久久网 | 亚洲精品在线观看中文字幕 | 天天操婷婷 | 最近免费在线观看 | 亚洲黄色成人网 | 黄色激情网址 | 高清av免费看 | 国产精品一区二区三区四区在线观看 | 一级片免费视频 | 国产午夜精品免费一区二区三区视频 | 亚洲精品免费在线播放 | 欧美久久久久 | 五月婷婷丁香综合 | 久久免费99精品久久久久久 | 天天插天天狠天天透 | 91福利小视频 | 亚洲毛片久久 | 亚洲人人网 | 婷婷深爱网 | 久操久| 超黄视频网站 | 91九色老| 日韩高清在线观看 | 五月婷婷丁香六月 | 亚洲天堂精品视频在线观看 | av片子在线观看 | 欧美精品一区在线发布 | 国产视频一区在线播放 | 久久精品网站免费观看 | 成人黄色资源 | 国产日本在线播放 | 久久免费视频2 | 欧美人人爱| 国产美女主播精品一区二区三区 | 97超碰香蕉 | 色网站国产精品 | 一级欧美黄 | 973理论片235影院9 | 亚洲精品在线免费 | 正在播放久久 | 国产美女永久免费 | 色婷婷综合成人av | 91九色视频在线播放 | 五月天综合网 | 一区二区三区视频在线 | 国产麻豆电影在线观看 | 97**国产露脸精品国产 | 国产精品一区二区精品视频免费看 | 国产人成看黄久久久久久久久 | 天天做天天看 | 中文字幕国语官网在线视频 | 国内精品久久久久久久久久久久 | 亚洲一二视频 | 91精品国产高清自在线观看 | 久草网视频 | 精品视频在线观看 | 深夜免费福利视频 | 特黄特黄的视频 | 在线观看免费日韩 | 97超碰人人网 | 人人插人人爱 | 国产五月婷婷 | 天天爽天天做 | 久久人人爽人人爽人人片av免费 | 国内外成人在线视频 | av免费在线网站 | 日韩精品一区二区三区在线视频 | 中文字幕一区二区三区乱码在线 | 91桃色国产在线播放 | 日韩电影中文字幕 | 久久国产精品区 | 91在线最新 | 日本爽妇网 | 九色免费视频 | 在线a亚洲视频播放在线观看 | 国产黄免费在线观看 | www.五月婷婷 | 欧美激情视频免费看 | 国产一级片播放 | 2017狠狠干| 中文字幕乱码视频 | 天天操天天射天天添 | 国产精品久久精品 | 在线国产能看的 | 日韩激情中文字幕 | 日韩系列 | 不卡在线一区 | 国产最新视频在线 | www.黄色| 四虎国产精品成人免费4hu | www黄色| 国产欧美精品在线观看 | 国产美女搞久久 | 在线观看日本高清mv视频 | 国产在线视频一区二区 | 97在线观看免费视频 | 国产午夜三级一区二区三桃花影视 | 精品国内 | 麻豆一精品传二传媒短视频 | 国产成人av电影在线观看 | 69精品人人人人 | 视频三区在线 | 国产精品女教师 | 黄色软件视频大全免费下载 | 在线观看久久 | 亚洲黄在线观看 | 欧美日韩在线视频一区 | 婷婷丁香视频 | 欧美日韩免费在线观看视频 | 最新中文字幕在线播放 | 日韩免费三区 | 国产一区二区在线影院 | 夜夜婷婷 | 久草网站 | av成人亚洲 | 亚洲春色综合另类校园电影 | 中文字幕视频一区二区 | 久久久综合九色合综国产精品 | av在线收看 | 精品久久美女 | 久久婷婷综合激情 | 最近中文字幕mv | 国产夫妻性生活自拍 | 成年人视频在线观看免费 | 色综合婷婷 | 一本一本久久a久久精品综合妖精 | 欧美一级日韩免费不卡 | 亚洲一区二区精品 | 日韩在线一区二区免费 | 久久久免费 | 国产91学生粉嫩喷水 | 久久精品一区二区三 | 亚洲精品视频在线看 | 精品在线你懂的 | 国产在线更新 | 亚洲狠狠丁香婷婷综合久久久 | 免费黄在线观看 | 丰满少妇对白在线偷拍 | 久久国产热视频 | 97超碰香蕉 | 中文字幕在线观看播放 | 国产精品黄色影片导航在线观看 | 日韩欧美一区二区三区黑寡妇 | 中文字幕在线有码 | 欧洲一区二区三区精品 | 精品久久免费 | 国产在线精品播放 | 久久国产二区 | 97成人精品视频在线观看 | 日韩精品免费一区二区三区 | 久久在线免费视频 | 国产视频一区在线免费观看 | 日韩在线观看小视频 | 欧美一级免费高清 | 欧美成人黄色片 | 欧美伊人网| 亚洲欧美日韩一二三区 | 欧美成人aa | 亚av在线| 在线播放视频一区 | 91亚洲精品久久久蜜桃借种 | 麻豆系列在线观看 | 欧美视频在线观看免费网址 | 国产亚洲日 | 久久精品99国产精品日本 | 国产美女久久久 | 日本在线h | 日韩午夜三级 | 亚洲一区二区三区精品在线观看 | 日韩精品视频久久 | 日韩专区av| 九九综合九九综合 | 亚洲黄污| 色综合网| 91超国产| 精品免费在线视频 | 久久国产精品影视 | 又黄又爽又无遮挡免费的网站 | 成人影音av| 五月婷在线 | 成人蜜桃视频 | 久久人人97超碰com | 久久久久久福利 | 天天天天天操 | 国产在线精品视频 | 精品 激情 | 日韩电影中文字幕 | 91视频这里只有精品 | 色综合中文综合网 | 主播av在线 | 四虎成人精品永久免费av九九 | 中文字幕电影高清在线观看 | 最近中文字幕国语免费av | 国产69精品久久99的直播节目 | 国产二区精品 | 中文在线a在线 | 在线日韩av| 超薄丝袜一二三区 | 国产真实在线 | 午夜精品一区二区三区可下载 | 中文字幕在线观看第二页 | 日日干,天天干 | 97电影网手机版 | 亚洲欧美成人 | 麻豆一二| 888av| 激情视频在线高清看 | 国产精品一区二区av麻豆 | 91国内在线| 国产精品久久综合 | 日韩中文在线视频 | 欧美一二区视频 | 在线你懂的视频 | 国产美女网站视频 | 色综合婷婷久久 | 国产免费黄视频在线观看 | 精品字幕在线 | 久久久久一区 | 91精品久久久久久久久久入口 | 91手机视频在线 | 91精品在线麻豆 | 中文字幕av专区 | 久久激情精品 | 九色福利视频 | 国产粉嫩在线观看 | 最新色视频 | 欧美日本在线观看视频 | 国内视频在线观看 | 国产在线色视频 | 日韩高清黄色 | 在线精品观看国产 | 亚洲综合色av | 久久久高清一区二区三区 | 久久国产精品99国产 | 国产精品久久99 | 人人看97 | 欧美日韩免费视频 | 国模视频一区二区三区 | 在线观看欧美成人 | 韩国视频一区二区三区 | 国产精品区一区 | 91av超碰| 国产精品一区二区在线免费观看 | 日韩中文字幕第一页 | 国产群p视频 | 色狠狠狠 | 久久亚洲欧美 | 热久久免费视频精品 | 在线观看一区二区视频 | 亚洲综合五月天 | 亚洲精品五月 | 欧美日本在线视频 | 国产1区2区3区精品美女 | 国产精品高清在线 | 国产99在线免费 | 国产日韩视频在线观看 | 欧美日韩a视频 | 五月天网页 | 亚洲毛片在线观看. | 91av亚洲| 亚洲人人网 | 亚洲精品美女久久久 | 国产视频久久久久 | 精品国产免费看 | 国产成人免费在线观看 | 亚洲2019精品 | 欧美极品一区二区三区 | 亚洲精品国产日韩 | 黄色一级大片免费看 | 亚洲国产播放 | 二区精品视频 | www五月天 | 伊人www22综合色 | 亚洲激情精品 | 91av手机在线| 日韩欧美在线不卡 | 伊人婷婷综合 | 99色在线播放 | 亚洲国产成人精品久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 五月婷婷电影网 | 久久99这里只有精品 | 丰满少妇高潮在线观看 | 天天色播| 日韩免费高清在线观看 | 久久久国产一区二区三区四区小说 | 日韩专区一区二区 | 四虎国产精品永久在线国在线 | 婷婷久久综合九色综合 | 日日射天天射 | 日韩中字在线观看 | 欧美日本一区 | 黄色91在线观看 | 中文字幕在线网址 | 国产成人免费精品 | 日日操网站 | 国产高清免费av | 麻豆视频在线免费观看 | 91精品毛片 | av电影亚洲| 99热最新网址 | 精品久久久久久久久久久院品网 | 国产精品久久久久婷婷 | 午夜色性片 | 精品久久久久久久久久国产 | 99久久婷婷国产一区二区三区 | 国产精品美 | 欧美精品二 | 久久久久久国产一区二区三区 | 在线观看av片 | 香蕉精品视频在线观看 | www国产在线 | 久久精品这里精品 | 亚洲精品在线观看的 | 久久夜色精品国产欧美乱 | 天天色天天操综合 | 正在播放 国产精品 | 特级西西444www大胆高清无视频 | 欧美精品做受xxx性少妇 | 天天综合区 | 69精品在线 | 色天天综合久久久久综合片 | 国产精品理论视频 | 韩国三级一区 | 久精品在线 | 少妇激情久久 | 久久黄色免费观看 | 不卡日韩av | 国产亚洲久久 | 美女精品在线观看 | 欧美ⅹxxxxxx| 色视频在线观看免费 | 亚洲精品美女在线观看 | 国产一级片播放 | 一区二区三区在线电影 | 国产色小视频 | av在线播放国产 | 国产精品久久久久久久久久了 | 国内偷拍精品视频 | 色多多视频在线 | 99精品一区 | 国产成人黄色在线 | 97国产| 麻豆视频在线观看免费 | 久久久国产精品电影 | 精品国产成人 | 日韩理论电影在线 | 久久公开视频 | 欧美日韩另类在线 | 国产成人在线观看 | 久久精品爱视频 | 日韩中文久久 | 四虎国产视频 | 九九色综合 | 亚洲成a人片综合在线 | 麻豆视频大全 | 6699私人影院 | 国产91粉嫩白浆在线观看 | 不卡的av电影在线观看 | 99久久精品无码一区二区毛片 | 色综合久久五月 | www.黄色片网站 | 午夜av日韩 | 一区二区三区福利 | 中文字幕 国产专区 | 亚洲成av人影院 | 麻豆精品传媒视频 | 操操操人人 | 午夜视频在线观看一区二区三区 | www天天操| 天天玩天天干 | av免费网站观看 | 精品美女在线视频 | 日韩在线视频一区二区三区 | 色综合久久久久综合体桃花网 | 最近2019年日本中文免费字幕 | 狠狠网| 亚洲国产成人精品在线 | 992tv在线观看网站 | 亚洲区二区 | 伊人看片 | 午夜色影院 | 国产一区免费在线 | 久久爱资源网 | 黄色av影视 | www麻豆视频 | 久久久久网站 | 国产精品国产亚洲精品看不卡15 | 美女久久久久久久久久久 | 日韩在线网址 | 欧美精品三级 | 精品国产一区二区三区久久 | 日韩高清不卡一区二区三区 | 日韩黄在线观看 | 一区二区三区韩国免费中文网站 | 欧美最猛性xxxxx亚洲精品 | 日韩免费一级a毛片在线播放一级 | 久久影院亚洲 | 久久精品二区 | 亚洲国内精品 | 亚洲午夜精品一区二区三区电影院 | av电影免费 | 97国产情侣爱久久免费观看 | 欧美午夜久久 | 去干成人网 | 久av电影| 成人免费观看视频网站 | 中文字幕免费国产精品 | 久99久在线| 91精品国产三级a在线观看 | 美女又爽又黄 | 国内精品亚洲 | 中文字幕在线观看2018 | av免费黄色 | 精品乱码一区二区三四区 | 日韩久久精品一区二区三区下载 | 96精品在线 | 友田真希x88av | 日韩免费播放 | 色资源在线观看 | 亚洲伊人av | 西西www4444大胆在线 | 中文字幕影视 | 日韩高清一二区 | 国产成人黄色av | 69xxxx欧美 | av资源网在线播放 | 色偷偷88888欧美精品久久久 | 国产日韩欧美在线观看视频 | 色香蕉视频 | 成人av久久 | 天天色综合久久 | 男女视频91 | 婷婷精品视频 | 成人在线网站观看 | 国内精品视频在线 | 色婷婷福利| 国产精品大全 | 在线视频国产区 | 美女精品网站 | 激情网站免费观看 | 一区二区av | 日本精品中文字幕在线观看 | 国产成人三级三级三级97 | 国产视频在线免费观看 | 99视频国产在线 | 色噜噜色噜噜 | 天堂av免费看 | 99热在线观看 | 久久综合狠狠综合久久狠狠色综合 | 在线观av | 91手机电影 | 狠日日| av在线小说| 国产精品久久久久久久免费 | 亚洲精品玖玖玖av在线看 | 欧美精品一二三 | av大全在线播放 | 亚洲一二三区精品 | 在线激情av电影 | 精品综合久久 | 色综合天天视频在线观看 | 探花视频免费观看高清视频 | 亚洲自拍偷拍色图 | 亚洲成人在线免费 | 91精品91| av免费看在线 | 日韩高清dvd | 日本成人免费在线观看 | 国产一区私人高清影院 | 亚洲精品乱码久久久久v最新版 | 天天综合网久久综合网 | 欧美成人xxxx | 不卡的一区二区三区 | 日本中文乱码卡一卡二新区 | 亚洲电影在线看 | 日韩欧美一区二区在线播放 | 91麻豆精品91久久久久同性 | 久草视频国产 | 国产精品无av码在线观看 | 中文字幕在线观看2018 | 精品黄色在线 | 亚洲精品美女免费 | 精品麻豆入口免费 | 国产精品99久久久久久武松影视 | 欧美有色| 午夜神马福利 | 久九视频| 久久精品免费 | 国产九九精品视频 | 久久国产成人午夜av影院潦草 | 日韩精品一区二区三区在线视频 | 日韩成人av在线 | 亚洲视频久久 | 日本中出在线观看 | 国产资源免费在线观看 | 91女神的呻吟细腰翘臀美女 | 日韩在线免费视频 | 国产免费视频在线 | 天堂视频一区 | 免费三级黄色 | 欧美二区在线播放 | 久久综合狠狠综合久久综合88 | 韩日av在线 | 国产精品99久久久久久武松影视 | 色99视频| www.五月天激情 | 狠狠狠色丁香婷婷综合激情 | 91色欧美 | 99综合电影在线视频 | 天天天在线综合网 | av大片免费在线观看 | 91av美女| 久久久久亚洲最大xxxx | 国产色在线视频 | 日韩视频在线播放 | 日韩美女黄色片 | 国产综合视频在线观看 | 国产手机视频精品 | 国产三级国产精品国产专区50 | 亚洲第二色 | 久草久草在线观看 | 91视频下载 | 久草五月 | 四虎影视精品永久在线观看 | 亚洲国产午夜视频 | 麻豆传媒视频在线免费观看 | 亚洲欧美va | 四虎成人精品在永久免费 | 国内精品视频在线 | 免费看的黄网站 | 日韩91在线 | 最新日韩在线观看视频 | 亚洲经典中文字幕 | 一区二区三区精品在线 | 免费a现在观看 | 国产特黄色片 | 国产精品免费久久久久久 | 久久国产精品色av免费看 | 六月丁香久久 | 国产色婷婷在线 | 欧美孕妇与黑人孕交 | 亚洲精品日韩av | 三级性生活视频 | 99精品黄色 | 精品久久久久久久久久久久久久久久 | 丁香六月婷婷综合 | 一区二区三区日韩视频在线观看 | 一本色道久久综合亚洲二区三区 | 久久麻豆精品 | 在线黄av| 国产人成看黄久久久久久久久 | 亚洲专区欧美 | av在线免费在线观看 | av电影免费| 欧美日韩免费一区 | 超碰97人| 顶级欧美色妇4khd | 久久久精品国产一区二区电影四季 | 婷婷激情五月综合 | 国产69久久久| 亚洲精品在线免费看 | 香蕉色综合 | 国产福利小视频在线 | 在线观看中文av | 成人影视免费 | 国产黄a三级 | 久久大片网站 | 人人爱人人射 | 亚洲91中文字幕无线码三区 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 久久久久一区二区三区四区 | 美女黄频在线观看 | 国内精品久久久久影院一蜜桃 | 亚洲美女精品区人人人人 | 国产亚洲精品久久久久久移动网络 | www.神马久久 | 成人av中文字幕 | av片子在线观看 | 97看片| 91九色蝌蚪在线 | 综合精品久久久 | 中文字幕国产 | 国内成人精品视频 | 精品久久久久久亚洲综合网站 | 少妇视频一区 | 日韩av电影中文字幕 | 99久久精品免费看国产免费软件 | 久久精品播放 | 久草在线资源观看 | 国产专区在线看 | 国产精品毛片一区视频播 | 久久69精品 | 91热这里只有精品 | 国产成人在线综合 | 日韩在线观看精品 | 久久国产亚洲 | 成年人视频在线免费播放 | 麻豆观看| 国产精品9999久久久久仙踪林 | 亚洲在线不卡 | 国产h片在线观看 | 亚洲一区二区精品在线 | 黄网站污 | 国产大片黄色 | 99久久一区 | 久久夜色精品国产欧美乱 | 欧美性大胆 | 一区二区三区日韩视频在线观看 | 成人一区影院 | 天天操比 | 精品一区二区日韩 | 成年人天堂com| 毛片一区二区 | 三级a毛片 | 国产精品18久久久久久久久 | 国内久久视频 | 国产精品乱码高清在线看 | 天天在线免费视频 | 久久,天天综合 | 欧美乱熟臀69xxxxxx | 亚洲天天干 | 欧美日韩中文在线 | 亚洲精品在线观看视频 | 美女在线免费视频 | 日韩在线观看精品 | 精品人妖videos欧美人妖 | 久久久久久久久久久综合 | 欧美激情综合网 | 天天玩天天干 | 国产精品淫片 | 欧美性生活免费看 | 国产精品国产毛片 | 欧美日韩国语 | 国产精品久久久久久久久久久不卡 | 友田真希av | 日韩国产精品久久 | 久久永久视频 | 91精品人成在线观看 | 精品久久美女 | 欧美性性网 | 2021国产精品视频 | 欧美日韩一级在线 | 亚洲va欧美va人人爽 | 黄色视屏av | 成人毛片一区二区三区 | a天堂最新版中文在线地址 久久99久久精品国产 | 天天干天天草天天爽 | 91视频一8mav| 国产精品第三页 | 国产精品国内免费一区二区三区 | 欧美巨乳波霸 | 欧美在线视频一区二区三区 | 99久久网站 | 久久视频精品 | 国产精品观看视频 | 99免费国产| 97超碰人人澡 | 91资源在线免费观看 | 在线精品视频免费播放 | 午夜精品久久久久久久99 | 亚洲美女视频网 | 久久伊人精品一区二区三区 | 国产精品精品视频 | 天天干夜夜干 | 激情五月视频 | 在线看黄色的网站 | 免费开视频 | 国产精品视频免费看 | 国产精品18久久久久vr手机版特色 | 综合婷婷丁香 | 国产精品丝袜久久久久久久不卡 | 欧美色精品天天在线观看视频 | 日本h视频在线观看 | 日韩精品一区二区三区免费视频观看 | 久久久久欠精品国产毛片国产毛生 | 久99热| 精品久久网| 亚洲国产精品激情在线观看 | 久久久综合电影 | av成人动漫在线观看 | 国产色网站 | 国产一区二区三区免费在线 | 国产伦理久久精品久久久久_ | 中文字幕在线看 | 国产手机在线播放 | 婷婷激情站 | va视频在线 | 高清在线观看av | 亚洲波多野结衣 | 免费高清在线观看成人 | 日女人免费视频 | 亚洲精品黄色在线观看 | 亚洲区精品视频 | 美女网站视频色 | 精品国产一区二区三区日日嗨 | 日韩成人av在线 | 最新免费中文字幕 | 亚洲国产中文字幕 | 五月婷婷久久丁香 | 亚洲伦理一区二区 | 国产精品av久久久久久无 | 成人资源站| 免费观看成人av | 久久99热这里只有精品 | 综合在线观看 | 国产区欧美 | 免费高清在线一区 | 日韩久久精品一区二区三区下载 | 91精品国产成人www | 日本精品二区 | 91精品夜夜 | 精品一区免费 | 日韩在线播放欧美字幕 | 亚洲第一色 | 日韩精品中字 | 欧美aa在线观看 | 日韩av不卡在线 | 国产精品丝袜在线 | 日韩城人在线 | 在线免费观看视频 | 欧美 激情 国产 91 在线 | 久久精品专区 | 高潮久久久久久久久 | av免费播放| 天堂激情网| 天天干天天操人体 | 久久久精品 | 成人黄大片视频在线观看 | 国产成人精品在线播放 | 亚洲精品在线视频网站 | 国产精品亚洲人在线观看 | 一区二区三区日韩视频在线观看 | 国产精品久久久久永久免费 | 在线中文视频 | 日韩精品资源 | 亚洲最大成人免费网站 | 精品久久久久久亚洲综合网站 | 亚洲天天摸日日摸天天欢 | 国产香蕉97碰碰久久人人 | 四虎影视8848aamm | 国产精品一区二区av日韩在线 | 中文字幕色站 | 免费一区在线 | 色多多视频在线观看 | 日日干精品 | 午夜婷婷在线播放 | 日韩成人黄色 | 777视频在线观看 | 欧美少妇xxx | 四虎免费在线观看视频 | 97视频免费看 | 久久天堂网站 | 在线观看激情av | 国产精品九九久久久久久久 | 在线色资源 | 亚洲国产手机在线 | 久久伊人精品天天 | 麻豆免费视频 | 国产一级h| 丁香久久婷婷 | 成人毛片网 | 9在线观看免费高清完整版在线观看明 | 国产在线色视频 | av中文字幕网址 | 在线不卡a| 日精品在线观看 | 色综合天天爱 | 亚洲在线看 | 国产91欧美 | 久草精品视频在线观看 | 国内精品亚洲 | 免费av成人在线 | 日韩欧美在线观看一区二区三区 | 欧美激情视频一二区 | 开心丁香婷婷深爱五月 | 九九综合九九 | 国产亚洲一区二区三区 | 天天爽人人爽夜夜爽 | 丁香婷婷综合五月 | 亚洲精品国产精品国自产 | 亚洲久草在线 | 很污的网站 | 久久精品视频国产 | 亚洲精品国产拍在线 | 日韩成人xxxx | 精品久久久久国产免费第一页 | 久久一及片 | 国产手机在线视频 | 色婷婷狠狠五月综合天色拍 | 久久精品这里热有精品 | 在线观看成人国产 | 国产精品国产三级国产aⅴ入口 | 97天堂网| 国产精品99免费看 | 超碰人人av | 久久综合日 | 久久日本视频 | 一区二区三区三区在线 | 日本在线观看一区二区 | 欧美精品在线观看免费 | 久久激情视频 | 成年人在线观看视频免费 | 亚洲经典视频在线观看 | 丝袜少妇在线 | 色在线视频 | 国产亚洲精品免费 | 亚洲视频 在线观看 | 7799av | 日日干av| 欧美色图30p| 国产视频网站在线观看 | 香蕉视频导航 | 成人一级电影在线观看 | 天天操天天操天天爽 | 久久九九久久九九 | 日韩在线观看精品 | 激情五月播播久久久精品 | 免费精品国产va自在自线 | 丁香六月天婷婷 | 国产精品久久久久aaaa | 精品久久久久久综合日本 | 国产精品美女久久久久久 | 视频在线91| 波多野结衣资源 | 国产亚州精品视频 | 亚洲视频免费 | 国产视频一区精品 | 日韩欧美高清 | 亚洲国产69 | 91豆花在线观看 | 国产九色在线播放九色 | 国际精品久久 | 久久久久久久久久久久久国产精品 | 久久免费视频4 | 久久成人综合视频 | 国产精品久久久久999 | 黄色网免费 | 久久系列 | 色欧美日韩 | 久久午夜精品视频 | 欧美性生活久久 | 日韩网站一区 | 米奇狠狠狠888 | 久久国产精品第一页 | 成年人国产在线观看 | 欧美色图狠狠干 | 99爱精品在线 | 久久成人午夜 | 久久精品久久精品久久精品 | 日韩精品免费一线在线观看 | 欧美成人xxxxx| 成年人视频在线免费观看 | 欧美日韩不卡一区 | 国产在线精品一区二区不卡了 | 国产天天综合 | 在线观看不卡视频 | 69久久99精品久久久久婷婷 | 国产精品系列在线 | av千婊在线免费观看 | 成人免费看片网址 | 精品国产综合区久久久久久 | www178ccom视频在线 | 成人黄色一级视频 | 狠狠色伊人亚洲综合网站野外 | 成人一级片视频 | 深爱激情婷婷网 | 国产精品久久久999 国产91九色视频 | 97在线视 | a国产精品 | 久久99久久99久久 | 成人在线免费视频 | 91人人爽人人爽人人精88v | 国产精品午夜久久 | 国产专区在线 | www成人av | 免费av一级电影 | 久久久国产精品人人片99精片欧美一 | 伊人狠狠色 | 久久久久久久久久久高潮一区二区 | 麻豆影视网站 | 免费网站在线观看人 | 亚洲成人av在线电影 | 国产精品久久久久久妇 | 在线亚洲免费视频 | 国产精品精品国产婷婷这里av | 国产精品久久久久久久久婷婷 | 伊人va | 精品中文字幕在线观看 | 国色综合 | 免费久久精品视频 | 在线视频1卡二卡三卡 | 91福利视频免费观看 | 日韩精品在线免费播放 | 国产香蕉久久精品综合网 | 新av在线 | 91精品国产综合久久婷婷香蕉 | 午夜三级影院 | 视频 国产区 | 成人欧美一区二区三区在线观看 | 国产丝袜网站 | 精品在线观看一区二区三区 | 久久久电影网站 | 久久久久久久久久久网站 | 玖玖精品在线 | 欧美日韩国产精品一区二区亚洲 | av在线精品 | 国产精品99在线观看 | 99亚洲国产精品 | 午夜av一区| 国产欧美精品一区二区三区四区 | 91免费高清观看 | 久久国产精品99久久人人澡 | 欧美日韩大片在线观看 | 日韩国产在线观看 | 韩国av免费看 | 美女视频黄色免费 | 夜夜躁狠狠躁日日躁 | 操夜夜操 |