亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL用戶賬戶管理和權(quán)限管理深入講解

2024-07-25 19:09:22
字體:
供稿:網(wǎng)友

前言

MySQL 的權(quán)限表在數(shù)據(jù)庫啟動(dòng)的時(shí)候就載入內(nèi)存,當(dāng)用戶通過身份認(rèn)證后,就在內(nèi)存中進(jìn)行相應(yīng)權(quán)限的存取,這樣,此用戶就可以在數(shù)據(jù)庫中做權(quán)限范圍內(nèi)的各種操作了。

下面話不多說了,來一起看看詳細(xì)的介紹吧

mysql 的權(quán)限體系大致分為5個(gè)層級(jí):

全局層級(jí)

全局權(quán)限適用于一個(gè)給定服務(wù)器中的所有數(shù)據(jù)庫。這些權(quán)限存儲(chǔ)在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤銷全局權(quán)限。

數(shù)據(jù)庫層級(jí)

數(shù)據(jù)庫權(quán)限適用于一個(gè)給定數(shù)據(jù)庫中的所有目標(biāo)。這些權(quán)限存儲(chǔ)在mysql.db和mysql.host表中。GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤銷數(shù)據(jù)庫權(quán)限。

表層級(jí)

表權(quán)限適用于一個(gè)給定表中的所有列。這些權(quán)限存儲(chǔ)在mysql.talbes_priv表中。GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤銷表權(quán)限。

列層級(jí)

列權(quán)限適用于一個(gè)給定表中的單一列。這些權(quán)限存儲(chǔ)在mysql.columns_priv表中。當(dāng)使用REVOKE時(shí),您必須指定與被授權(quán)列相同的列。

子程序?qū)蛹?jí)

CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權(quán)限適用于已存儲(chǔ)的子程序。這些權(quán)限可以被授予為全局層級(jí)和數(shù)據(jù)庫層級(jí)。而且,除了CREATE ROUTINE外,這些權(quán)限可以被授予為子程序?qū)蛹?jí),并存儲(chǔ)在mysql.procs_priv表中。

這些權(quán)限信息存儲(chǔ)在下面的系統(tǒng)表中:

mysql.user
mysql.db
mysql.host
mysql.table_priv
mysql.column_priv

當(dāng)用戶連接進(jìn)來,mysqld會(huì)通過上面的這些表對(duì)用戶權(quán)限進(jìn)行驗(yàn)證!

一、權(quán)限表的存取

在權(quán)限存取的兩個(gè)過程中,系統(tǒng)會(huì)用到 “mysql” 數(shù)據(jù)庫(安裝 MySQL 時(shí)被創(chuàng)建,數(shù)據(jù)庫名稱叫“mysql”) 中 user、host 和 db 這3個(gè)最重要的權(quán)限表。

在這 3 個(gè)表中,最重要的表示 user 表,其次是 db 表,host 表在大多數(shù)情況下并不使用。

user 中的列主要分為 4 個(gè)部分:用戶列、權(quán)限列、安全列和資源控制列。

通常用的最多的是用戶列和權(quán)限列,其中權(quán)限列又分為普通權(quán)限和管理權(quán)限。普通權(quán)限用于數(shù)據(jù)庫的操作,比如 select_priv、super_priv 等。

當(dāng)用戶進(jìn)行連接時(shí),權(quán)限表的存取過程有以下兩個(gè)過程:

先從 user 表中的 host、user 和 password 這 3 個(gè)字段中判斷連接的 IP、用戶名、和密碼是否存在于表中,如果存在,則通過身份驗(yàn)證,否則拒絕連接。

如果通過身份驗(yàn)證、則按照以下權(quán)限表的順序得到數(shù)據(jù)庫權(quán)限:user -> db -> tables_priv -> columns_priv。

在這幾個(gè)權(quán)限表中,權(quán)限范圍依次遞減,全局權(quán)限覆蓋局部權(quán)限。上面的第一階段好理解,下面以一個(gè)例子來詳細(xì)解釋一下第二階段。

為了方便測(cè)試,需要修改變量 sql_mode,不然會(huì)報(bào)錯(cuò),如下

MySQL [(none)]> grant select on *.* to xxx@localhost;ERROR 1133 (42000): Can't find any matching row in the user tableMySQL [(none)]> SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';Query OK, 0 rows affected, 2 warnings (0.07 sec)MySQL [(none)]> grant select on *.* to xxx@localhost;Query OK, 0 rows affected, 2 warnings (0.10 sec)
// sql_mode 默認(rèn)值中有 NO_AUTO_CREATE_USER (防止GRANT自動(dòng)創(chuàng)建新用戶,除非還指定了密碼)SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

1. 創(chuàng)建用戶

xxx@localhost,并賦予所有數(shù)據(jù)庫上的所有表的 select 權(quán)限

先查看user表顯示的權(quán)限狀態(tài)

MySQL [mysql]> select * from user where user="xxx" and host='localhost' /G;*************************** 1. row ***************************Host: localhostUser: xxxSelect_priv: YInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: NCreate_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: password_expired: Npassword_last_changed: 2018-12-03 17:34:49password_lifetime: NULLaccount_locked: N

再查看db表的權(quán)限狀態(tài)

MySQL [mysql]> select * from db where user="xxx" and host='localhost' /G;Empty set (0.03 sec)

可以發(fā)現(xiàn)user表中Select_priv: Y,其他均為N

DB表中則無記錄

也就是說,對(duì)所有數(shù)據(jù)庫都具有相同的權(quán)限的用戶并不需要記錄到 db 表,而僅僅需要將 user 表中的 select_priv 改為 “Y” 即可。換句話說,user 表中的每個(gè)權(quán)限都代表了對(duì)所有數(shù)據(jù)庫都有權(quán)限。

2. 將 xxx@localhost 上的權(quán)限改為只對(duì) db1 數(shù)據(jù)庫上所有表的 select 權(quán)限。

MySQL [mysql]> create database db1;Query OK, 1 row affected (0.01 sec)MySQL [mysql]> re^CMySQL [mysql]> revoke select on *.* from xxx@localhost;Query OK, 0 rows affected, 1 warning (0.06 sec)MySQL [mysql]> grant select on db1.* to xxx@localhost;Query OK, 0 rows affected, 1 warning (0.09 sec)MySQL [mysql]> select * from user where user='xxx'/G;*************************** 1. row ***************************Host: localhostUser: xxxSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: N
MySQL [mysql]> select * from db where user='xxx'/G;*************************** 1. row ***************************Host: localhostDb: db1User: xxxSelect_priv: YInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NCreate_tmp_table_priv: NLock_tables_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NExecute_priv: NEvent_priv: NTrigger_priv: N

這時(shí)候發(fā)現(xiàn),user 表中的 select_priv 變?yōu)?“N” ,而 db 表中增加了 db 為 xxx 的一條記錄。也就是說,當(dāng)只授予部分?jǐn)?shù)據(jù)庫某些權(quán)限時(shí),user 表中的相應(yīng)權(quán)限列保持 “N”,而將具體的數(shù)據(jù)庫權(quán)限寫入 db 表。table 和 column 的權(quán)限機(jī)制和 db 類似。

3. tables_priv記錄表權(quán)限

MySQL [db1]> create table t1(id int(10),name char(10));Query OK, 0 rows affected (0.83 sec)MySQL [db1]> grant select on db1.t1 to mmm@localhost;Query OK, 0 rows affected, 2 warnings (0.06 sec)MySQL [mysql]> select * from user where user='mmm'/G;*************************** 1. row ***************************Host: localhostUser: mmmSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: N...MySQL [mysql]> select * from db where user='mmm'/G;Empty set (0.00 sec)MySQL [mysql]> select * from tables_priv where user='mmm'/G;*************************** 1. row ***************************Host: localhostDb: db1User: mmmTable_name: t1Grantor: root@localhostTimestamp: 0000-00-00 00:00:00Table_priv: SelectColumn_priv: 1 row in set (0.00 sec)ERROR: No query specifiedMySQL [mysql]> select * from columns_priv where user='mmm'/G;Empty set (0.00 sec)

可以看見tables_priv表中增加了一條記錄,而在user db columns_priv三個(gè)表中沒有記錄

從上例可以看出,當(dāng)用戶通過權(quán)限認(rèn)證,進(jìn)行權(quán)限分配時(shí),將按照 ==user -> db -> tables_priv -> columns_priv== 的順序進(jìn)行權(quán)限分配,即先檢查全局權(quán)限表 user,如果 user 中對(duì)應(yīng) 權(quán)限為 “Y”,則此用戶對(duì)所有數(shù)據(jù)庫的權(quán)限都為“Y”,將不再檢查 db、tables_priv 和 columns_priv;如果為“N”,則到 db 表中檢查此用戶對(duì)應(yīng)的具體數(shù)據(jù)庫,并得到 db 中為 “Y”的權(quán)限;如果 db 中相應(yīng)權(quán)限為 “N”,則再依次檢查tables_priv 和 columns_priv 中的權(quán)限,如果所有的都為“N”,則判斷為不具備權(quán)限。

二. 賬戶管理

授權(quán) grant

grant不僅可以用來授權(quán),還可以用來創(chuàng)建用戶。

授權(quán)的語法:

grant 權(quán)限列表 on 庫名.表名 to 用戶@主機(jī) identified by '密碼';

創(chuàng)建用戶 p1 ,權(quán)限為可以在所有數(shù)據(jù)庫上執(zhí)行所有權(quán)限,只能從本地進(jìn)行連接

MySQL [mysql]> grant all privileges on *.* to p1@localhost;Query OK, 0 rows affected, 2 warnings (0.03 sec)MySQL [mysql]> select * from user where user='p1'/G*************************** 1. row ***************************Host: localhostUser: p1Select_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: NReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: YCreate_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: password_expired: Npassword_last_changed: 2018-12-03 18:11:01password_lifetime: NULLaccount_locked: N1 row in set (0.00 sec)

除了 grant_priv 權(quán)限外,所有權(quán)限在user 表里面都是 “Y”。

增加對(duì) p1 的 grant 權(quán)限

MySQL [mysql]> grant all privileges on *.* to p1@localhost with grant option;Query OK, 0 rows affected, 1 warning (0.03 sec)MySQL [mysql]> select * from user where user='p1'/G*************************** 1. row ***************************Host: localhostUser: p1Select_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: YCreate_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: password_expired: Npassword_last_changed: 2018-12-03 18:11:01password_lifetime: NULLaccount_locked: N1 row in set (0.00 sec)

設(shè)置密碼賦予grant權(quán)限

MySQL [mysql]> grant all privileges on *.* to p1@localhost identified by '123' with grant option;Query OK, 0 rows affected, 2 warnings (0.01 sec)MySQL [mysql]> select * from user where user='p1'/G*************************** 1. row ***************************Host: localhostUser: p1Select_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: YCreate_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257password_expired: Npassword_last_changed: 2018-12-03 18:14:40password_lifetime: NULLaccount_locked: N1 row in set (0.00 sec)

在5.7版本后的數(shù)據(jù)庫,密碼字段改為authentication_string

創(chuàng)建新用戶 p2,可以從任何 IP 連接,權(quán)限為對(duì) db1 數(shù)據(jù)庫里的所有表進(jìn)行 select 、update、insert 和 delete 操作,初始密碼為“123”

MySQL [mysql]> grant select,insert,update,delete on db1.* to 'p2'@'%' identified by '123';Query OK, 0 rows affected, 1 warning (0.01 sec)MySQL [mysql]> select * from user where user='p2'/G;*************************** 1. row ***************************Host: %User: p2Select_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: N...Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257password_expired: Npassword_last_changed: 2018-12-03 18:20:44password_lifetime: NULLaccount_locked: N1 row in set (0.00 sec)ERROR: No query specifiedMySQL [mysql]> select * from db where user='p2'/G;*************************** 1. row ***************************Host: %Db: db1User: p2Select_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: NDrop_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NCreate_tmp_table_priv: NLock_tables_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NExecute_priv: NEvent_priv: NTrigger_priv: N1 row in set (0.00 sec)

user 表中的權(quán)限都是“N”,db 表中增加的記錄權(quán)限則都是“Y”,這樣只授予用戶適當(dāng)?shù)臋?quán)限,而不會(huì)授予過多的權(quán)限。

本例中的 IP 限制為所有 IP 都可以連接,因此設(shè)置為 “%”,mysql 數(shù)據(jù)庫中是通過 user 表的 host 字段來進(jìn)行控制,host 可以是以下類型的賦值。

注意: mysql 數(shù)據(jù)庫的 user 表中 host 的值為 “%” 或者空,表示所有外部 IP 都可以連接,但是不包括本地服務(wù)器 localhost,因此,如果要包括本地服務(wù)器,必須單獨(dú)為 localhost 賦予權(quán)限。

授予 super、process、file 權(quán)限給用戶 p3@%

MySQL [mysql]> grant super,process,file on db1.* to 'p3'@'%';ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGESMySQL [mysql]> grant super,process,file on *.* to 'p3'@'%';Query OK, 0 rows affected (0.03 sec)

這幾個(gè)權(quán)限都是屬于管理權(quán)限,因此不能夠指定某個(gè)數(shù)據(jù)庫,on 后面必須跟 *.*,否則會(huì)提示錯(cuò)誤,如上

那這幾個(gè)權(quán)限是干啥的?

process通過這個(gè)權(quán)限,用戶可以執(zhí)行SHOW PROCESSLIST和KILL命令。默認(rèn)情況下,每個(gè)用戶都可以執(zhí)行SHOW PROCESSLIST命令,但是只能查詢本用戶的進(jìn)程。

擁有file權(quán)限才可以執(zhí)行 select ..into outfile和load data infile…操作,但是不要把file, process, super權(quán)限授予管理員以外的賬號(hào),這樣存在嚴(yán)重的安全隱患。

super這個(gè)權(quán)限允許用戶終止任何查詢;修改全局變量的SET語句;使用CHANGE MASTER,PURGE MASTER LOGS

另外一個(gè)比較特殊的

usage權(quán)限

連接(登陸)權(quán)限,建立一個(gè)用戶,就會(huì)自動(dòng)授予其usage權(quán)限(默認(rèn)授予)。

該權(quán)限只能用于數(shù)據(jù)庫登陸,不能執(zhí)行任何操作;且usage權(quán)限不能被回收,也即``REVOKE用戶并不能刪除用戶。

查看賬號(hào)權(quán)限

賬號(hào)創(chuàng)建好后,可以通過如下命令查看權(quán)限:

show grants for user@host;MySQL [mysql]> show grants for p2@'%';+-------------------------------------------------------------+| Grants for p2@% |+-------------------------------------------------------------+| GRANT USAGE ON *.* TO 'p2'@'%' || GRANT SELECT, INSERT, UPDATE, DELETE ON `db1`.* TO 'p2'@'%' |+-------------------------------------------------------------+2 rows in set (0.00 sec)

更改賬戶權(quán)限

創(chuàng)建用戶賬號(hào)p4,權(quán)限為對(duì)db1所有表具有select權(quán)限

MySQL [mysql]> grant select on db1.* to p4@'%';Query OK, 0 rows affected, 1 warning (0.01 sec)MySQL [mysql]> show grants for p4@'%';+-------------------------------------+| Grants for p4@% |+-------------------------------------+| GRANT USAGE ON *.* TO 'p4'@'%' || GRANT SELECT ON `db1`.* TO 'p4'@'%' |+-------------------------------------+2 rows in set (0.00 sec)

增加delete權(quán)限

MySQL [mysql]> grant delete on db1.* to p4@'%';Query OK, 0 rows affected (0.01 sec)MySQL [mysql]> show grants for p4@'%';+---------------------------------------------+| Grants for p4@% |+---------------------------------------------+| GRANT USAGE ON *.* TO 'p4'@'%' || GRANT SELECT, DELETE ON `db1`.* TO 'p4'@'%' |+---------------------------------------------+2 rows in set (0.00 sec)

和已有的 select 權(quán)限進(jìn)行合并

刪除delete權(quán)限

revoke 語句可以回收已經(jīng)賦予的權(quán)限

MySQL [mysql]> show grants for p4@'%';+---------------------------------------------+| Grants for p4@% |+---------------------------------------------+| GRANT USAGE ON *.* TO 'p4'@'%' || GRANT SELECT, DELETE ON `db1`.* TO 'p4'@'%' |+---------------------------------------------+2 rows in set (0.00 sec)MySQL [mysql]> revoke delete on db1.* from p4@'%';Query OK, 0 rows affected (0.01 sec)MySQL [mysql]> show grants for p4@'%';+-------------------------------------+| Grants for p4@% |+-------------------------------------+| GRANT USAGE ON *.* TO 'p4'@'%' || GRANT SELECT ON `db1`.* TO 'p4'@'%' |+-------------------------------------+2 rows in set (0.00 sec)

usage能revoke?

MySQL [mysql]> revoke select on db1.* from p4@'%';Query OK, 0 rows affected (0.02 sec)MySQL [mysql]> show grants for p4@'%';+--------------------------------+| Grants for p4@% |+--------------------------------+| GRANT USAGE ON *.* TO 'p4'@'%' |+--------------------------------+1 row in set (0.00 sec)MySQL [mysql]> revoke usage on db1.* from p4@'%';ERROR 1141 (42000): There is no such grant defined for user 'p4' on host '%'

usage 權(quán)限不能被回收,也就是說,revoke 用戶并不能刪除用戶。

要徹底的刪除賬號(hào),可以使用 drop user

drop user p4@'%';

賬號(hào)資源限制

創(chuàng)建 MySQL 賬號(hào)時(shí),還有一類選項(xiàng)稱為賬號(hào)資源限制,這類選項(xiàng)的作用是限制每個(gè)賬號(hào)實(shí)際具有的資源限制,這里的“資源”主要包括:

max_queries_per_hour count : 單個(gè)賬號(hào)每小時(shí)執(zhí)行的查詢次數(shù)
max_upodates_per_hour count : 單個(gè)賬號(hào)每小時(shí)執(zhí)行的更新次數(shù)
max_connections_per_hour count : 單個(gè)賬號(hào)每小時(shí)連接服務(wù)器的次數(shù)
max_user_connections count : 單個(gè)賬號(hào)并發(fā)連接服務(wù)器的次數(shù)

注意:

添加用戶或者權(quán)限,使用mysql> flush privileges; 刷新權(quán)限

具體權(quán)限可以參考官網(wǎng)文檔

https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
伊人情人网综合| 一本久久精品一区二区| 国产一区日韩欧美| 成人性生活免费看| www.成人精品| 国产传媒av在线| 羞羞视频网页| 欧美日韩无遮挡| 中文字幕在线视频一区二区三区| 好吊妞国产欧美日韩免费观看网站| 成人免费看aa片| 男同在线观看| 久久精品五月天| av色资源站| 亚洲丝袜另类动漫二区| 福利视频导航大全| 91制片厂免费观看| 国产免费一区二区三区在线观看| 日韩av网站电影| 日韩三级视频在线播放| 丁香花在线电影小说观看| 粉嫩av一区二区三区天美传媒| av一级在线| 四虎海外永久免费网址| 国产精品狼人色视频一区| 50度灰在线观看| 在线观看麻豆蜜桃| 国产精品久久久久9999爆乳| 99精品老司机免费视频| 成人性视频免费网站| av片在线观看网站| 最新中文字幕久久| 日韩69视频在线观看| wwwxxxx在线观看| 精品久久久久久综合日本欧美| 香蕉视频黄在线观看| 久久精品午夜| 久久狠狠久久综合桃花| 无遮挡爽大片在线观看视频| 成人在线爆射| 久久人人97超碰国产公开结果| 色偷偷亚洲男人天堂| 九九热精品免费视频| 91香蕉视频污版| 午夜老司机精品| 国产少妇在线观看| 桃乃木香奈和黑人aⅴ在线播放| jizz国产精品| 色网在线免费观看| 亚洲欧洲精品天堂一级| 大香伊人久久| 日韩欧美在线电影| 诱受h嗯啊巨肉高潮| 夜夜躁狠狠躁日日躁婷婷小说| 日韩一级视频免费观看在线| 亚洲激情图片qvod| 精品精品国产国产自在线| 欧美一区二区三区观看| 中文字幕伦理免费在线视频| 日本视频中文字幕一区二区三区| 91性感美女视频| 色伦专区97中文字幕| www.国产| 久久久久久国产精品三级玉女聊斋| 久久人人97超碰精品888| 视频国产一区二区三区| 亚洲日本va中文字幕久久| 亚洲精品久久久久久下一站| 欧美日韩精品在线一区二区| 色乱码一区二区三在线看| 亚洲制服少妇| 蜜臀av午夜一区二区三区| 99久久精品久久亚洲精品| 天天干天天做天天操| 麻豆专区一区二区三区四区五区| 天堂国产一区二区三区| 午夜日韩福利| 国产在线视频在线观看| 蜜乳av另类精品一区二区| 国产精品无码永久免费888| 超级砰砰砰97免费观看最新一期| 99高清视频有精品视频| 德国一级在线视频| 午夜免费一区二区| 国产美女主播一区| 亚洲av成人片色在线观看高潮| 一二三四区在线观看| 伊人久久久大香线蕉综合直播| 波多野结衣人妻| 蜜桃视频在线播放| 99在线高清视频在线播放| 成人444kkkk在线观看| 成人动漫h在线观看| 亚洲国产精品欧美一二99| 国语自产精品视频在线看抢先版图片| 91精品国产一区二区三区动漫| 日本美女黄色一级片| 可以免费看av的网址| 欧美aaaxxxx做受视频| 久久精品国产色蜜蜜麻豆| 婷婷成人激情| 青草视频在线观看免费| 成人黄色片在线| 国产美女一区二区| www.日日操| 午夜免费播放观看在线视频| 日韩精品在线私人| 三叶草欧洲码在线| 日韩毛片免费观看| 天堂中文av在线| 在线成人免费网站| 成人一级片在线观看| 一区二区蜜桃| 日本成片免费高清| 麻豆免费网站| 一区二区三区四区在线视频| 日韩电影在线播放| 夜夜嗨av一区二区三区网页| 国产在线成人精品午夜| 亚洲精品你懂的| 性生生活大片免费看视频| 日韩女优毛片在线| 男人女人拔萝卜视频| 快射视频在线观看| 麻豆一区二区三区在线观看| 青青草97国产精品免费观看| 成人黄色免费网址| 国产一区二区久久久| 超碰免费在线公开| 亚洲小视频在线| 国产麻豆剧传媒精品国产av| av在线你懂的| 五月婷婷欧美激情| 国产精品自拍片| 久久精品电影网站| www.久久精品| 青青草超碰在线| 国产熟妇久久777777| 99久久久无码国产精品免费| 精品国产国产综合精品| 国产真实的和子乱拍在线观看| 日日夜夜网站| 亚洲xxx拳头交| 免费不卡av| 丁香婷婷激情网| 亚洲性受xxx喷奶水| 欧美亚洲黄色| 经典三级在线一区| 色黄视频在线观看| 日韩欧美中文字幕在线观看| 午夜日韩在线| 国产视频一区在线播放| 在线观看福利片| 91久久国产综合久久91猫猫| 伊人久久久久久久久久久久久| 成全视频在线播放大地| 性色av一区二区三区四区| 精品国产成人av在线免| 国产精品久久久久久久久久ktv| 精品久久91| 日韩在线视频中文字幕| 91久久精品视频| japanese23hdxxxx日韩| 性欧美18一19内谢| 中文字幕在线国产精品| 国产亚洲精品久久久久久打不开| 久久久久亚洲av无码专区桃色| www 成人av com| 乱人伦精品视频在线观看| 亚洲成人av电影| jizz性欧美2| 91av视频在线观看| 欧美精品色视频| 欧美乱大交xxxxxbbb| 九色国产视频| 美女视频黄免费的久久| 亚洲欧美日韩第一区| 麻豆精品在线播放| 国产女人爽到高潮a毛片| 四色永久网址| 国产精品久久久久久久一区探花| 国产欧美va欧美va香蕉在线| 欧美69xx性欧美| 国产精品人人妻人人爽人人牛| 久久久精品有限公司| 男女爽爽爽视频| 亚洲一区二区三区四区视频| 精品欧美一区二区三区免费观看| 日本精品久久电影| 四虎在线视频免费观看| 99国产超薄肉色丝袜交足的后果| 九色视频成人自拍| 午夜精品电影在线观看| 国产精品九九九九九九| 四虎影视一区二区| 日韩欧美亚洲范冰冰与中字| 精品伦精品一区二区三区视频| 成人av在线电影| 欧美日韩国产小视频在线观看| 女教师淫辱の教室蜜臀av软件| 日韩国产小视频| 欧美~级网站不卡| 四虎在线免费视频| 国产丝袜自拍| 久久精品久久精品| 色综合色狠狠综合色| 精品一区二区三区av| 91精品又粗又猛又爽| 一区二区三区在线资源| 国产精品久久久久婷婷| 91好色先生tv| 少妇与大狼拘作爱性a| 国产精品入口日韩视频大尺度| 国产免费www| 国产精品欧美综合在线| 91福利视频导航| 亚洲第一精品网站| 久久婷婷五月综合| 欧美狂猛xxxxx乱大交3| 福利网址在线观看| 欧美激情一区二区三区p站| 不卡影院免费观看| 日韩欧美精品在线| 亚洲国产精品va在线观看黑人| 污导航在线观看| 91探花福利精品国产自产在线| 黄色免费在线播放| 午夜一区在线观看| 亚洲国产精品免费在线观看| 性做久久久久久久久久| 天堂中文字幕在线观看| 91丨九色丨蝌蚪丨老板| 欧美日韩国产亚洲一区| 99青草视频在线播放视| 佐山爱在线视频| 久操视频在线免费观看| 电影亚洲精品噜噜在线观看| 欧美精品亚洲一区二区在线播放| 国产福利91精品一区| 欧美黄色一区二区三区| 99视频国产精品免费观看| 成人福利网站| xfplay资源站色先锋在线观看| 91久久中文字幕| 国产精品久久久一区麻豆最新章节| 国产91丝袜在线观看| 亚洲成人精品av| 黄色网在线免费看| 中文字幕av不卡在线| 免费在线成人av| 中文字幕免费一区二区三区| 欧美二区在线观看| 欧美在线播放一区二区| 欧美色视频日本高清在线观看| 国产自偷自偷免费一区| 国产资源第一页| 黄色在线网站| 熟女高潮一区二区三区| 久草视频在线资源站| 日本一区高清在线视频| 色视频在线观看免费| 日韩一区二区三区四区区区| 国内精品伊人久久| 国产69精品久久| 久久久精品电影| 久久精品 人人爱| 国产日韩欧美高清免费| 国产欧美在线播放| 一道在线中文一区二区三区| 亚洲电影小说图| 妖精视频在线观看免费| 美女国产一区二区三区| 日韩欧美中文字幕一区二区| 国产在线观看免费网站| 日本欧美一区二区在线观看| 国产精品高潮呻吟久久av无限| 麻豆国产一区二区三区四区| 亚洲黄色大片| 亚洲一区精品电影| 成人在线免费观看视频网站| 2019国产精品| 亚洲视频免费播放| 成人在线短视频| 中文天堂在线观看| 一二三区在线播放| 欧美在线不卡| 国产亚洲欧美一区二区三区| www免费网站在线观看| 一区二区三区电影大全| 亚洲一二三四2021不卡| 日本午夜人人精品| 电影在线观看一区| www.欧美日本| 猫咪av在线| 国产精品午夜电影| 久久亚洲精品小早川怜子66| 欧美日韩一区二区三区免费| 北条麻妃高清一区| 欧美激情专区| 精品久久久久久久久久久院品网| 精品国产乱码久久久久久蜜臀网站| 中文字幕亚洲日本| 中文字幕精品在线不卡| 亚洲一区二区三区无吗| 色一情一乱一乱一区91| 日韩亚洲在线视频| 国产一级片免费看| jizz老师| 欧美日韩精品免费观看视完整| 日韩国产伦理| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲精品中文字幕乱码三区| 精品三级av在线导航| 奇门遁甲1982国语版免费观看高清| 欧美日韩一区二区三区四区五区六区| 欧美日中文字幕| 成人av观看| 污视频在线免费观看网站| 大肉大捧一进一出好爽动态图| 美女在线视频免费| 欧美精品久久久久久久久久| 欧美做爰性欧美大fennong| 亚洲午夜av在线| 亚洲成av人片www| avove在线播放| 麻豆国产精品777777在线| 99热这里只有精品4| 在线电影欧美成精品|