99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

ASP.NET Core 產(chǎn)品目錄應(yīng)用實(shí)戰(zhàn):在 SQL Server 2016/Azure SQL Database 中融合 JSON、時態(tài)表、數(shù)據(jù)脫敏與行級安全

ASP.NET Core 產(chǎn)品目錄應(yīng)用實(shí)戰(zhàn):在 SQL Server 2016/Azure SQL Database 中融合 JSON、時態(tài)表、數(shù)據(jù)脫敏與行級安全 示例工程數(shù)據(jù)庫教程后端【免費(fèi)下載鏈接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge項(xiàng)目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples點(diǎn)擊查看免費(fèi)下載本篇技術(shù)指南圍繞 sql-server-samples 倉庫中的 belgrade-product-catalog-demo 示例展開講解如何用 ASP.NET Core Web API 構(gòu)建一個產(chǎn)品目錄Product Catalog應(yīng)用并在一套數(shù)據(jù)庫上同時落地 SQL Server 2016/Azure SQL Database 的四大核心能力JSON 函數(shù)、時態(tài)表Temporal Tables、動態(tài)數(shù)據(jù)脫敏Data Masking與行級安全Row-Level Security。讀完本文你將掌握完整的建庫腳本、JSON 存取存儲過程、時態(tài)表回溯與恢復(fù)、脫敏與多租戶數(shù)據(jù)隔離的實(shí)現(xiàn)細(xì)節(jié)以及對應(yīng)的 C# 端到端調(diào)用方式可直接遷移到自己的多租戶商品管理或 SaaS 業(yè)務(wù)中。關(guān)于本示例適用環(huán)境與能力矩陣項(xiàng)目說明適用版本SQL Server 2016或更高版本、Azure SQL Database關(guān)鍵技術(shù)JSON 函數(shù)、時態(tài)表、數(shù)據(jù)脫敏、行級安全RLS編程語言C#ASP.NET Core、HTML/JavaScript、Transact-SQL作者Jovan Popovic示例的四大技術(shù)主題與業(yè)務(wù)落點(diǎn)JSON 功能用于實(shí)現(xiàn) Web API為前端 HTML 應(yīng)用提供結(jié)構(gòu)靈活的產(chǎn)品數(shù)據(jù)時態(tài)表展示數(shù)據(jù)變更軌跡、按時間點(diǎn)回溯快照、恢復(fù)產(chǎn)品歷史版本數(shù)據(jù)脫敏對公司的 Email、Phone、Postcode 字段按規(guī)則打碼非授權(quán)用戶看到的是掩碼后的值行級安全按當(dāng)前登錄公司CompanyID隔離產(chǎn)品數(shù)據(jù)不同公司只能看到自己的產(chǎn)品。項(xiàng)目整體架構(gòu)前端使用 JQuery / JQuery UI 庫配合 JQuery DataTable 組件展示與操作表格數(shù)據(jù)服務(wù)端使用 ASP.NET Core Web API通過 JSON 函數(shù)將數(shù)據(jù)庫查詢結(jié)果直接格式化為 JSON 響應(yīng)并將客戶端提交的 JSON 請求反序列化后寫入數(shù)據(jù)庫SQL Server 時態(tài)表負(fù)責(zé)追蹤歷史、按時間點(diǎn)展示過去快照、恢復(fù)產(chǎn)品舊版本數(shù)據(jù)脫敏隱藏公司敏感信息行級安全隔離各公司數(shù)據(jù)。代碼位于 samples/demos/belgrade-product-catalog-demo數(shù)據(jù)庫腳本全部集中在 sql-scripts 目錄編號即執(zhí)行順序。環(huán)境準(zhǔn)備軟件前置條件SQL Server 2016或更高版本或一個 Azure SQL Database 實(shí)例ASP.NET Core 1.0 SDK或更高版本??蛇xVisual Studio 2015 Update 3或更高版本或 Visual Studio Code 編輯器。Azure 前置條件擁有創(chuàng)建 Azure SQL Database 的權(quán)限若選擇云端部署。運(yùn)行本示例完整步驟第 1 步創(chuàng)建數(shù)據(jù)庫并設(shè)置兼容級別在 SQL Server 2016 或 Azure SQL Database 上創(chuàng)建數(shù)據(jù)庫并將兼容級別設(shè)置為130對應(yīng) SQL Server 2016確保 JSON、時態(tài)表等新功能可用ALTER DATABASE ProductCatalog SET COMPATIBILITY_LEVEL 130;第 2 步執(zhí)行初始化腳本使用 SQL Server Management StudioSSMS或 Visual Studio / SQL Server Data Tools 連接到數(shù)據(jù)庫按順序執(zhí)行以下腳本位于 sql-scripts 目錄腳本作用1 setup.sql創(chuàng)建登錄名/用戶/角色創(chuàng)建并填充 Product、Company 表創(chuàng)建 JSON 存取存儲過程3 setup-temporal.sql創(chuàng)建歷史表 History.Product 并開啟系統(tǒng)版本控制5>dotnet restore # 還原全部 NuGet 包 dotnet build # 編譯項(xiàng)目備選方案用 Visual Studio 2015 Update 3或更高打開根目錄的ProductCatalog.xproj在項(xiàng)目上右鍵選擇 “Restore Packages” 還原依賴。第 4 步修改連接字符串定位項(xiàng)目中的 appsettings.json將連接字符串改為指向你的數(shù)據(jù)庫。默認(rèn)值指向本機(jī) SQLEXPRESS 實(shí)例的 ProductCatalog 數(shù)據(jù)庫并使用集成安全Windows 身份驗(yàn)證{ ConnectionStrings: { BelgradeDemo: Server.\\SQLEXPRESS;DatabaseProductCatalog;Integrated Securitytrue;Application NameBelgrade } }修改后重新構(gòu)建CtrlShiftB、右鍵項(xiàng)目 Build或命令行dotnet build。第 5 步運(yùn)行應(yīng)用Visual Studio 中按F5或CtrlF5或在項(xiàng)目根目錄命令行執(zhí)行dotnet run打開/index.html即可體驗(yàn)完整功能查看全部產(chǎn)品、增刪改產(chǎn)品點(diǎn)擊綠色 () 按鈕查看某行數(shù)據(jù)的所有歷史變更通過滑塊JQuery UI Slider向左拖動回溯到過去某個時間點(diǎn)從歷史中恢復(fù)某個版本編輯任意產(chǎn)品并驗(yàn)證公司信息已被脫敏以不同公司身份登錄驗(yàn)證只能看到當(dāng)前公司的產(chǎn)品數(shù)據(jù)。數(shù)據(jù)庫層實(shí)現(xiàn)詳解源碼級JSON 功能從建表、導(dǎo)入到存儲過程1 setup.sql 定義了兩個包含 JSON 列的核心表。Product表把Data、Tags兩列聲明為nvarchar用于存放半結(jié)構(gòu)化 JSONCREATE TABLE Product ( ProductID int DEFAULT (NEXT VALUE FOR ProductId) PRIMARY KEY, Name nvarchar(50) NOT NULL, Color nvarchar(15) NULL, Size nvarchar(5) NULL, Price money NOT NULL, Quantity int NULL, CompanyID int, Data nvarchar(4000), Tags nvarchar(4000), DateModified datetime2(0) NOT NULL DEFAULT (GETUTCDATE()) )關(guān)鍵點(diǎn)SQL Server 不要求 JSON 列使用專用類型普通nvarchar即可存放 JSON 文本ProductID通過序列ProductId起始值 29自動生成。隨后用OPENJSON把一組 JSON 數(shù)組批量導(dǎo)入表INSERT INTO Product (ProductID, Name, Color, Size, Price, Quantity, CompanyID, Data, Tags, DateModified) SELECT ProductID, Name, Color, Size, Price, Quantity, CompanyID, Data, Tags, DateModified FROM OPENJSON (products) WITH( ProductID int, Name nvarchar(50), Color nvarchar(15), Size nvarchar(5), Price money, Quantity int, CompanyID int, Data nvarchar(MAX) AS JSON, Tags nvarchar(MAX) AS JSON, DateModified datetime2(0) )注意AS JSON關(guān)鍵字它告訴OPENJSON該列本身是 JSON 對象/數(shù)組而非標(biāo)量從而保留嵌套結(jié)構(gòu)Data中的ManufacturingCost、MadeInTags數(shù)組等。Company表同樣通過OPENJSON導(dǎo)入三家示例公司A Datum Corporation、Contoso, Ltd.、Consolidated Messenger。同腳本還創(chuàng)建了兩個面向 JSON 輸入的存儲過程Web API 正是通過它們完成產(chǎn)品的新增與更新新增產(chǎn)品InsertProductFromJson接收完整 JSON 對象用OPENJSON ... WITH提取字段后插入OUTPUT INSERTED.ProductID返回新行 ID。其中Name、Price使用了Nstrict $.Name/Nstrict $.Price路徑表達(dá)式——strict表示 JSON 中缺少該屬性時報錯保證關(guān)鍵字段必填CREATE PROCEDURE [dbo].InsertProductFromJson) AS BEGIN INSERT INTO dbo.Product(Name, Color, Size, Price, Quantity, CompanyID, Data, Tags) OUTPUT INSERTED.ProductID SELECT Name, Color, Size, Price, Quantity, CompanyID, Data, Tags FROM OPENJSON(ProductJson) WITH ( Name nvarchar(100) Nstrict $.Name, Color nvarchar(30), Size nvarchar(10), Price money Nstrict $.Price, Quantity int, CompanyID int, Data nvarchar(max) AS JSON, Tags nvarchar(max) AS JSON) as json END更新產(chǎn)品UpdateProductFromJson接收 ProductID 與 JSON更新標(biāo)量列并用ISNULL(json.Data, dbo.Product.Data)保持“未提交字段保留原值”的語義即 JSON 中未攜帶的Data/Tags不會被清空CREATE PROCEDURE dbo.UpdateProductFromJson(ProductID int, ProductJson NVARCHAR(MAX)) AS BEGIN UPDATE dbo.Product SET Name json.Name, Color json.Color, Size json.Size, Price json.Price, Quantity json.Quantity, Data ISNULL(json.Data, dbo.Product.Data), Tags ISNULL(json.Tags, dbo.Product.Tags) FROM OPENJSON(ProductJson) WITH ( Name nvarchar(100) Nstrict $.Name, Color nvarchar(30), Size nvarchar(10), Price money Nstrict $.Price, Quantity int, Data nvarchar(max) AS JSON, Tags nvarchar(max) AS JSON) as json WHERE dbo.Product.ProductID ProductID ENDJSON 查詢與操作演示2 json.sql 系統(tǒng)演示了 SQL Server 2016 的 JSON 全家族函數(shù)1. 用FOR JSON PATH把查詢結(jié)果直接格式化為 JSON 響應(yīng)Web API 的數(shù)據(jù)庫側(cè)輸出select ProductID, Name, Color, Size, Price, Quantity, JSON_VALUE(Data, $.MadeIn) as MadeIn, JSON_QUERY(Tags) as Tags from Product FOR JSON PATHJSON_VALUE提取 JSON 中的標(biāo)量值如$.MadeInJSON_QUERY原樣返回 JSON 對象/數(shù)組片段如Tags數(shù)組避免被轉(zhuǎn)義成字符串單行輸出用FOR JSON PATH, WITHOUT_ARRAY_WRAPPER去掉外層數(shù)組方括號。2. 在查詢?nèi)我馕恢檬褂?JSON 數(shù)據(jù)——篩選、分組、聚合、排序均可select JSON_VALUE(Data, $.Type) as Type, Color, AVG( cast(JSON_VALUE(Data, $.ManufacturingCost) as float) ) as Cost from Product group by JSON_VALUE(Data, $.Type), Color having JSON_VALUE(Data, $.Type) is not null order by JSON_VALUE(Data, $.Type)3. 用JSON_MODIFY就地更新 JSON 字段——修改標(biāo)量值或向數(shù)組追加元素update Product set Data JSON_MODIFY(Data, $.ManufacturingCost, 10), Tags JSON_MODIFY(Tags, append $, new) where ProductID 164.OPENJSON把 JSON 轉(zhuǎn)換為關(guān)系行集單對象轉(zhuǎn)一行、數(shù)組轉(zhuǎn)多行、嵌套路徑$.Data.Type提取深層字段甚至可以像查表一樣對 JSON 數(shù)組做GROUP BY/HAVING聚合分析。5.CROSS APPLY OPENJSON展開 JSON 數(shù)組做存在性檢索——找出所有帶promo標(biāo)簽的產(chǎn)品select ProductID, Name, Color, Size, Price, Quantity, Tags from Product CROSS APPLY OPENJSON(Tags) where value promo6. 規(guī)避FOR JSON PATH對嵌套 JSON 的轉(zhuǎn)義問題直接select ... Data, Tags時JSON 列會被當(dāng)作字符串轉(zhuǎn)義改用JSON_QUERY(Data) as Data, JSON_QUERY(Tags) as Tags后嵌套對象才會作為真正的 JSON 結(jié)構(gòu)輸出。時態(tài)表歷史追蹤、回溯與恢復(fù)3 setup-temporal.sql 將Product表升級為系統(tǒng)版本控制時態(tài)表并預(yù)置了 2015-05 至 2016-02 期間的多版本歷史數(shù)據(jù)通過OPENJSON導(dǎo)入History.Product。開啟時態(tài)表的三個關(guān)鍵動作-- 1. 添加有效時間列默認(rèn)最大日期表示“至今仍有效” ALTER TABLE Product ADD ValidTo datetime2(0) NOT NULL CONSTRAINT Product_ValidTo_EndTime DEFAULT (9999-12-31 23:59:59) -- 2. 指定時間段Period ALTER TABLE Product ADD PERIOD FOR SYSTEM_TIME (DateModified, ValidTo) -- 3. 開啟系統(tǒng)版本控制并綁定歷史表 ALTER TABLE Product SET (SYSTEM_VERSIONING ON (HISTORY_TABLE History.Product))時態(tài)表要求兩個datetime2列分別代表版本生效起始時間這里復(fù)用已有的DateModified與失效時間ValidTo系統(tǒng)會在每次 UPDATE/DELETE 時自動把舊版本寫入History.Product。腳本還封裝了三個應(yīng)用直接調(diào)用的數(shù)據(jù)庫對象版本差異函數(shù)dbo.diff_Product(id, date)把當(dāng)前版本與過去某時間點(diǎn)版本分別轉(zhuǎn)成 JSON再對OPENJSON展開的鍵值集合做 JOIN返回所有發(fā)生變化的列新值 v1、舊值 v2create function dbo.diff_Product (id int, date datetime2(0)) returns table as return ( select v1.[key] as [Column], v1.value as v1, v2.value as v2 from OPENJSON( (select * from Product where ProductID id FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) v1 join OPENJSON( (select * from Product for system_time as of date where ProductID id FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) v2 on v1.[key] v2.[key] where v1.value v2.value )dbo.GetProducts/dbo.GetProductsAsOf分別返回“當(dāng)前產(chǎn)品 全部歷史”和“某時間點(diǎn)的產(chǎn)品 相對當(dāng)前版本的差異”并用FOR JSON AUTO, ROOT(data)直接產(chǎn)出前端可用的 JSONcreate procedure dbo.GetProductsAsOf (date datetime2) as begin select Product.ProductID, Product.Name, Product.Color, Product.Price, Product.Quantity, JSON_VALUE(Product.Data, $.MadeIn) as MadeIn, JSON_QUERY(Product.Tags) as Tags, Product.DateModified, ProductDifferences.* from Product FOR SYSTEM_TIME AS OF date outer apply dbo.diff_Product(Product.ProductID, date) as ProductDifferences order by Product.ProductID asc FOR JSON AUTO, ROOT(data) enddbo.RestoreProduct(productid, date)用MERGE把指定時間點(diǎn)的歷史版本覆蓋寫回當(dāng)前表命中則更新、未命中則插入實(shí)現(xiàn)“一鍵恢復(fù)舊版本”create procedure dbo.RestoreProduct (productid int, date datetime2) as begin MERGE Product USING ( select ProductID, Name, Color, Size, Price, Quantity, CompanyID, Tags, Data from Product FOR SYSTEM_TIME AS OF date where ProductID productid) AS Restored (ProductID, Name, Color, Size, Price, Quantity, CompanyID, Tags, Data) ON (Product.ProductID Restored.ProductID) WHEN MATCHED THEN update set Name restored.Name, Color restored.Color, Size restored.Size, Price restored.Price, Quantity restored.Quantity, CompanyId restored.CompanyID, Data restored.Data, Tags restored.Tags WHEN NOT MATCHED THEN insert (ProductID, Name, Color, Size, Price, Quantity, CompanyID, Data, Tags) values (ProductID, Name, Color, Size, Price, Quantity, CompanyID, Data, Tags); end4 temporal.sql 提供完整的驗(yàn)證腳本核心用法一覽-- 回溯查看 2015-07-28 13:20:00 時刻的產(chǎn)品列表 select ProductID, Name, Color, Size, Price, Quantity from Product FOR SYSTEM_TIME AS OF 2015-07-28 13:20:00; -- 差異產(chǎn)品 17 當(dāng)前版本與歷史版本的差異列 select * from dbo.diff_Product(17, 2015-07-28 13:20:00); -- 全量歷史產(chǎn)品 17 的完整變更軌跡 select ProductID, Name, Color, Size, Price, Quantity, DateModified, ValidTo from Product FOR SYSTEM_TIME ALL where productid 17 order by DateModified desc; -- 恢復(fù)用 2015-11-07 03:40:09 的版本覆蓋當(dāng)前版本 exec RestoreProduct 17, 2015-11-07 03:40:09;腳本最后還演示了配合窗口函數(shù)LAG/LEAD的進(jìn)階分析——找出價格突變的“尖峰”記錄上一價格與下一價格相同、且與當(dāng)前價格偏差 ≥10%可用于價格異常監(jiān)控。動態(tài)數(shù)據(jù)脫敏Email、Phone、Postcode 打碼5>ALTER TABLE Company ALTER COLUMN Email ADD MASKED WITH (FUNCTION email()) ALTER TABLE Company ALTER COLUMN Phone ADD MASKED WITH (FUNCTION partial(5,XXXXXXX,2)) ALTER TABLE Company ALTER COLUMN Postcode ADD MASKED WITH (FUNCTION default())三種脫敏函數(shù)的效果函數(shù)說明效果示例email()郵箱脫敏僅保留首字母與域名msavicdatum.com→mXXXdatum.compartial(5,XXXXXXX,2)保留前 5 個字符與后 2 個字符中間用掩碼替換(381) 555-7639→(381) XXXXXXX39default()按類型默認(rèn)掩碼字符串列顯示XXXX46077→XXXX脫敏是“聲明式”的未授權(quán)用戶無UNMASK權(quán)限執(zhí)行SELECT * FROM Company時SSMS/驅(qū)動層自動返回掩碼值而授權(quán)用戶看到明文。腳本注釋中給出了驗(yàn)證方式——用只具備基本權(quán)限的WebUser身份執(zhí)行查詢EXECUTE AS USER WebUser; SELECT * FROM Company; REVERT;行級安全按公司隔離產(chǎn)品數(shù)據(jù)6 rls.sql 實(shí)現(xiàn)多租戶隔離每個會話通過SESSION_CONTEXT攜帶當(dāng)前公司 ID安全策略據(jù)此過濾可見行。第 1 步創(chuàng)建安全謂詞函數(shù)必須SCHEMABINDING。CompanyID -1視為管理員可訪問全部公司數(shù)據(jù)CREATE FUNCTION dbo.pUserCanAccessCompanyData(CompanyID int) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( SELECT 1 as canAccess WHERE SESSION_CONTEXT(NCompanyID) -1 OR CAST(SESSION_CONTEXT(NCompanyID) as int) CompanyID)第 2 步創(chuàng)建安全策略并添加過濾謂詞作用在Product上CREATE SECURITY POLICY dbo.ClientAccessPolicy ADD FILTER PREDICATE dbo.pUserCanAccessCompanyData(CompanyID) ON dbo.Product WITH (StateON)第 3 步策略擴(kuò)展——對歷史表加過濾謂詞防止通過時態(tài)回溯跨公司查看、對 Product 加阻止謂詞BLOCK PREDICATE禁止寫入他公司數(shù)據(jù)、對 Company 加過濾謂詞公司列表也只顯示自己-- 歷史數(shù)據(jù)同樣隔離 ALTER SECURITY POLICY dbo.ClientAccessPolicy ADD FILTER PREDICATE dbo.pUserCanAccessCompanyData(CompanyID) ON History.Product -- 阻止跨公司寫入 ALTER SECURITY POLICY dbo.ClientAccessPolicy ADD BLOCK PREDICATE dbo.pUserCanAccessCompanyData(CompanyID) ON dbo.Product -- 公司表僅可見當(dāng)前公司 ALTER SECURITY POLICY dbo.ClientAccessPolicy ADD FILTER PREDICATE dbo.pUserCanAccessCompanyData(CompanyID) ON dbo.Company驗(yàn)證方式腳本注釋中給出設(shè)置會話上下文后SELECT * FROM Product會隨 CompanyID 變化返回不同子集777等不存在的公司則看不到任何數(shù)據(jù)EXEC sp_set_session_context CompanyID, 1 SELECT * FROM Product服務(wù)端實(shí)現(xiàn)ASP.NET Core Web API 如何銜接數(shù)據(jù)庫數(shù)據(jù)訪問與依賴注入Startup.cs 展示了兩種數(shù)據(jù)訪問方式并存Entity Framework Coreservices.AddDbContextProductCatalogContext(...)用于 ProductCatalogController.cs 中的常規(guī) CRUDAdd、GetAll、GetByIdBelgrade SqlClient 的IQueryPipe/ICommand直接執(zhí)行存儲過程并以流式方式把FOR JSON結(jié)果寫到響應(yīng)配合AddRls(CompanyID, () GetCompanyIdFromSession(sp))可從 HTTP Session 讀取 CompanyID 寫入SESSION_CONTEXT與服務(wù)端 RLS 策略聯(lián)動代碼中該調(diào)用被注釋作為接入示例保留。會話與中間件管線app.UseSession()啟用 SessionUseStaticFiles()提供 wwwroot 下的靜態(tài)頁面UseMvc默認(rèn)路由指向ProductCatalog控制器的Index動作。日志落庫Serilog NLogStartup構(gòu)造函數(shù)中配置了 Serilog 的 MSSqlServer sink把應(yīng)用日志寫入數(shù)據(jù)庫Logs表由 1 setup.sql 創(chuàng)建的Logs表結(jié)構(gòu)——Message、Level、EventTime、LogEvent四列并通過ColumnOptions移除默認(rèn)的 Id/Properties/MessageTemplate/Exception 列、僅保留 JSON 格式的LogEvent日志表與配置保持一致var columnOptions new ColumnOptions(); columnOptions.Store.Remove(StandardColumn.Id); columnOptions.Store.Remove(StandardColumn.Properties); columnOptions.Store.Remove(StandardColumn.MessageTemplate); columnOptions.Store.Remove(StandardColumn.Exception); columnOptions.TimeStamp.ColumnName EventTime; columnOptions.Store.Add(StandardColumn.LogEvent); Log.Logger new LoggerConfiguration() .WriteTo.MSSqlServer(Configuration[ConnectionStrings:BelgradeDemo], Logs, columnOptions: columnOptions, autoCreateSqlTable: false) .CreateLogger();同時nlog.config與NLog.Extensions.Logging也被引入作為備選日志通道構(gòu)造函數(shù)中保留了相關(guān)注釋說明。日志寫入的是同一BelgradeDemo連接字符串指向的數(shù)據(jù)庫。控制器與前端頁面ProductCatalogController.cs 提供Index返回產(chǎn)品列表視圖、AddPOST 新增并重定向、GetAllJSON 列表、GetById按 ID 查詢未找到返回 404等動作Models.cs 中ProductCatalogContext映射 EF 實(shí)體。前端頁面位于 wwwrootindex.html產(chǎn)品列表 CRUD 歷史差異展示temporal.html時態(tài)回溯滑塊與版本恢復(fù)界面dashboard.html、report-multibar.html、report-pie.html基于 NVD3 的報表頁對應(yīng) JS 邏輯分布在 products.js、products-crud.js、products-temporal.js、rls.js、dashboard.js 中。進(jìn)階腳本同庫內(nèi)的擴(kuò)展演示除四大主題外sql-scripts 還附帶了一批編號腳本可在此產(chǎn)品目錄場景上繼續(xù)探索 SQL Server 更多能力xtp.sql在xtp架構(gòu)下創(chuàng)建內(nèi)存優(yōu)化表MEMORY_OPTIMIZEDON與原生編譯存儲過程N(yùn)ATIVE_COMPILATIONATOMIC WITH (TRANSACTION ISOLATION LEVEL SNAPSHOT, LANGUAGE Nus_english)演示 JSON 存取過程在高吞吐場景的版本bcp.sql創(chuàng)建 Orders/OrderLines 表并演示BULK INSERT配合EXTERNAL DATA SOURCEAzure Blob Storage從云端批量加載數(shù)據(jù)支持指定FORMATFILE與TABLOCKstring-agg.sql用STRING_AGG拼接每家公司的產(chǎn)品名稱列表結(jié)合STRING_ESCAPE(...,json)手工構(gòu)造合法 JSON 數(shù)組以及基于訂單關(guān)聯(lián)的“買了也買”Customers Also Buy推薦查詢A1 fraud-detection.sql、A2 compare-products.sql、A3 setup-temporal-3-part-name.sql欺詐檢測、產(chǎn)品對比與時態(tài)表三段式命名相關(guān)擴(kuò)展bcp 目錄下提供 bcp 導(dǎo)出/導(dǎo)入訂單數(shù)據(jù)的批處理腳本含 README 與 bcp.tt 模板test/ProductListComparison.jmxJMeter 壓測腳本可用于對比不同數(shù)據(jù)訪問路徑的產(chǎn)品列表查詢性能。設(shè)計說明與限制README 明確聲明本示例的目標(biāo)是演示 SQL Server/Azure SQL Database 功能的最小可運(yùn)行代碼并非通用 Web 開發(fā)架構(gòu)最佳實(shí)踐模板。它刻意保持了精簡——只包含構(gòu)建 REST API 所需的最少代碼沒有使用 Repository 等分層模式應(yīng)用通過 ASP.NET Core 內(nèi)置的依賴注入DI機(jī)制組織服務(wù)但這并非必需。你可以輕松修改代碼以適配自有應(yīng)用架構(gòu)。相關(guān)資源本示例依賴的組件官方資料與倉庫內(nèi)關(guān)聯(lián)內(nèi)容前端組件JQuery DataTables 行展開row_details 示例、JQuery UI Slider倉庫內(nèi)相關(guān)示例JSON 功能合集見 samples/features/json時態(tài)表產(chǎn)品目錄見 samples/features/temporal/product-catalogSQL 圖Graph與更多演示見 samples/demos。常見問題排查要點(diǎn)兼容級別未設(shè)置為 130JSON 函數(shù)、時態(tài)表等語法會報錯或不生效務(wù)必先執(zhí)行ALTER DATABASE ... SET COMPATIBILITY_LEVEL 130連接字符串指向錯誤實(shí)例默認(rèn)是.\SQLEXPRESS Windows 集成安全Azure SQL Database 需要改用Servertcp:...database.windows.net,1433;User ID...;Password...形式的 SQL 身份驗(yàn)證RLS 下看不到數(shù)據(jù)確認(rèn)已EXEC sp_set_session_context CompanyID, id設(shè)置會話上下文且該 ID 與Product.CompanyID匹配管理員使用-1脫敏未生效確認(rèn)當(dāng)前登錄用戶沒有UNMASK權(quán)限脫敏僅對無權(quán)限用戶生效時態(tài)表恢復(fù)RestoreProduct通過MERGE寫回當(dāng)前表恢復(fù)動作本身也會作為新版本寫入歷史表這是時態(tài)表的正常行為。贊分享示例工程數(shù)據(jù)庫教程后端【免費(fèi)下載鏈接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge項(xiàng)目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples點(diǎn)擊查看免費(fèi)下載相關(guān)推薦WideWorldImporters 行級安全性Row-Level Security實(shí)戰(zhàn)指南基于 SQL Server 2016 與 Azure SQL Database 的 T-SQL 演示W(wǎng)ideWorldImporters 行級安全性Row Level Security實(shí)戰(zhàn)指南基于 SQL Server 2016 與 Azure SQL示例工程數(shù)據(jù)庫教程后端使用 ASP.NET Core 與 SQL Server FOR JSON 構(gòu)建 ReactJS 評論應(yīng)用sql-server-samples 中的 JSON 前后端集成實(shí)戰(zhàn)使用 ASP.NET Core 與 SQL Server FOR JSON 構(gòu)建 ReactJS 評論應(yīng)用sql server samples 中的 JSON示例工程數(shù)據(jù)庫教程后端SQL Server JSON 與 Node.js 實(shí)戰(zhàn)構(gòu)建基于 Express 4 jQuery/Bootstrap 的產(chǎn)品目錄應(yīng)用SQL Server JSON 與 Node.js 實(shí)戰(zhàn)構(gòu)建基于 Express 4 jQuery/Bootstrap 的產(chǎn)品目錄應(yīng)用 導(dǎo)讀 本文基于 A示例工程數(shù)據(jù)庫教程后端創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99草在线免费观看视频| 夜夜综合色| 97人人妻人人艹| 99在线观看精品视频| 久久九九中文字幕| 2015在线中文字幕| 久久9视频| 99惹精品视频| 草操网| 以及AA大片看看| 婷婷久久亚洲| 99视频这里有精品| 99精品在线下载| 婷婷五月色图| 在线观看日韩12345区| 99热这里只有精品1025| 天天日天天干天天操| 激情综合久久| 婷婷色网| 色婷婷AAA| 日韩综合成人| 天天日天天爽| 婷婷久久综合| 99re在线观看| 激情五月婷| 婷婷五月中文在线视频| 色婷婷五月天堂资源| 婷婷成人在线| 大香蕉人人网| 99啪视频在线观看| 五月久久| 色都都狠狠色都都色综合色| 婷婷中合| 成人超碰网| 日本综合久久| 大香蕉五月天婷婷| 丁香婷婷基地| 9久久精品| 五月丁香六月综合激情无码软件亮点| aaaa.黄| 成人AV在线中文版| 久久久国产精品黄毛片| aV直接看| 丁香五月婷中字在线| 五月婷婷丁香| 超碰99在线观看| 大香蕉精品视频| 五月婷婷激情综合视频| 日日爱激情| 激情五月天www| 成人婷婷色五月天| 五月伊人视频在线看| 99rewww| 丁香婷婷六月婷婷六月婷婷六月婷婷| 第四色色六月色综合| 精品在线网站| 久久久人妻不卡| 五月丁香婷婷色色色| 综合激情在线观看| 天天日夜夜欢| 五月天激情站| 性爱电影科技贸易有限公司| 丰满人妻一区三区三区| 丁香五月激情综合啪啪| 五月激情六月丁香| www狠狠| 五月丁香婷婷基地| 色噜噜综合网| 天天日天天肏天天奸| 五月丁香久久| 日韩久久日| 日韩精品VIP| 综合网精品99| 九月av| 91婷婷丁香五月| 超碰人人99| 日韩伊人大香蕉| 激情婷婷丁香色五月| 六月婷婷最新网址| 97超碰综合| 超碰免费人人| 淫荡综合网| 色五开心五月五月深深爱| 日日爱699| 日韩av干| 九九人人精品| 中国女人做爰A片| 麻豆观看夏晴子| 90色免费视频| 成人电影在线免费试看| 干亚洲天堂| 五月丁香天天| 大香蕉婷婷五月| 亚州操人在线视频| ai97re99一本| 色综合久| 这里只有精品9| 婷婷五月激情天| 99九九在线视频| 九色七七| 激情五月成年| 99热99色| 日日舔夜夜操| 另类激情中文| 99久久婷婷五月| 99黄色在线视频精品熟女| 熟女激情网| 五月婷婷内射网| 丁香五月亚洲综合| 九九热在线观看视频| 欧美性生交XXXXX无码小说| 亚洲影院婷婷色| 综合色网站| 婷婷丁香色五月天久久88| 五月激情偷拍婷婷| 色狠狠色| 97操| 色婷婷色情| 99热这里只有精品免费| 亚洲乱码日产精品BD| 伊人三级激情| 五月婷婷狠狠干| www夜夜操| 99精品无码| 91九九九色在| 婷婷黄色五月天在线视频| 五月丁香婷婷成人综合网| 99在线热| 性爱激情小说AV五月丁香花| 五月婷婷在线网站| 狠狠操狠狠操| 色色色婷婷五月天| 六月丁香网| 无码免费人妻A片AAA毛片西瓜| 97操男人的天堂| site:901-07.com| 色在线视频网2025| 欧美日本国产| 欧美黑人巨大猛烈cuckold| 色在线视频网2025| 亚洲欧洲美女在线观| 天天五月丁香五月| 影音先锋四区| 亚洲AV永久无码影院黑人| 深爱 五月天| 51国精产品自偷自偷综合| 99精品偷自拍| 五月天国产成人| 天天爽天天干| 综合精品啪啪| 丁香五月a| 色色99| 婷婷射图五月天| 五月天另类小说久久小说网| 日本色色影片| 草婷婷在线| 六月激情婷婷| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 99精品色色| 五月丁香婷婷综合视频| 久久丁香婷婷五月| 99亚洲日韩| XX色综合| 天天成人综合视频| 91 欧美| 婷婷在线视频| 丁香五月六月综合激情| 色愛综合网| 六月婷婷综合激情| 日本三级日本三级三级人妇四虎| 97干视频| 激情五月天婷婷直播| www.五月天| 五月婷婷 婷婷五月 一区二区 久久久| 丁香五月六月久久综合 | 亚洲精品国产A久久久久久| 99热99在线| 99热这里只有精品99| httpwww色com日本| 五月婷婷之综合激情| 色级停停| 激情丁香五月天图片| 亚洲无码影音| 亚洲综合五月| 日本毛片内射| aa久久| 免费成片在线观看| 综合一区二区三区| 性爱综合网| 久热无码| 丁香五月婷婷成人色区| 亚洲黄网AV| 色综合久久88色综合天天人守婷| 久久精品无码一区| 色五月人妻| av在线不卡播放| 五月丁香六月婷婷综合网站| 涩涩婷婷五月| 五月天激情亚洲| 91精品91久久久中77777| 大香蕉综合在线| 色婷婷综合网站| 久碰视频| 五月婷婷无码专区| 9999热精品| 色五月婷婷很很操| 亚洲人妻AV| 99久热| 五月天免费色| 人人草碰| 久久久这里有精品| 五月天色婷婷基地| 玖玖爱综合网| 无码人妻丰满熟妇奶水区码| 99亚洲精品视频| 婷婷五月色综合| 色噜噜婷婷| 另类色视频| 国产69久久久欧美黑人A片| 亚洲VA在线| 色婷婷最新域名 | 老师的粉嫩小又紧水又多A片视频| 青青草蜜臀| 无码AV大香线蕉伊人| 在线视频99| 久久婷婷五月综合97色一本| 成人五月丁香花| 五月天亭亭俺也| 色色激情网| 天天干天天插| 婷婷五月天在线视频网站| 91在线日| 色婷婷狠狠18yy| 五月天婷婷色| 色五月综合网| 五月开心婷婷极品激情| 99久久婷婷五月| 婷婷色网站| 操逼福利视频| 91人人操人人| 久re在线| 极品人妻VIDEOSSS人妻 | WWW.久久.COM| 久久九九99| 五月丁香激情婷婷综合字幕| 久久新| 99热在线观看| 九月丁香| 香蕉人在线香蕉人在线 | 噜噜色天天开心| 激情电影五月婷婷| 色色99| 日本成人噜噜噜| 丁香五月色色色色| 欧美三级巜人妻互换| 人妻久久久久久久| 婷婷操逼| 91精品激情9| 色婷婷裸体色性在线| 色色色综合网| 丁香色成人| 色综合综合综合| 丁香九月激情| 在线观看亚洲视频影院| 超碰在线精品| 99综合色色色| 丁香五月婷婷色综合基地| 婷婷五月丁香综合亚洲 | 久久国产高清| 丁香五月在线自慰| 激情综合网丁香| 婷婷香香五月| 影音先锋 91工厂| 色情五月天se| 色丁香影院| 深爱激情网五月天| 欧美日本黄色| 啪啪综合网| 天堂亚洲 在线| 激情五月婷黄版| 天天肏天天爽夜夜爽| 日日干日日色| 天天干,天天舔| 97se视频在线| 超碰无码318604| 草榴视频黄色网| 精品夜夜澡人妻无码AV| 五月天激情小说网| 亚洲精品又粗又大又爽A片| 伊人婷婷五月天| 六月丁丁香| 毛片毛片毛片毛片| 国产精产国品一二三在观看| 99国产精品久久久久久久久久久| 碰久久精品w| 色吊丝av中文字幕| 久操97| av操一操| 婷婷激情六月| 亚洲成人中心| 亚洲国产成人在线| 天天干夜晚夜操| 99成人无码| 激情綜合W W W,激情五月天| 色综合激情| 精品人妻伦一二三区久久| 久热在线中文字幕色999舞 | 五月天婷婷久草丁香| 玖玖在线| 亚洲性爱99在线| 色停停五月天| 亚洲五月天婷婷| 大伊香蕉精品视频在线| 91成人看片| 丁香五月AV在线| 亚洲五月色| 99久久99九九99九九九| 超碰免费人人肏| 狠狠色五月激情| 婷婷天堂综合| 五月丁香网站在线播放| www色五月天| 色狠狠色综合| 伊人婷婷综合| 日日爽夜夜爽| 色综合久久8| 五月婷婷七月丁香| 《诡秘之主》在线观看| 丁香网五月网| 五月丁香久人妻中文| 丁香五月综合| 激情5月婷婷| 9久热在线精品| 91日本在线| 天天做天天干天天综合网| 亚洲第一综合| Caoub青青超碰 | 在线中文AV| 免费成片在线观看| 久久婷婷伊人| 免费99情趣网视频| 婷婷色五月91啪啪| 草一草avb| 亚洲啪| 日日日,com| 久久人人妻| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 5月婷婷激情网| 婷婷五月天熟妇| 色人久久| 女同激情久久av久久| 久久思思精品| 97色一二三| 可以看的AV| 国产在这里只有精品| 久草热8精品视频在线观看 | 月婷婷亚洲| 国产精品成人av在线观看春天| 婷婷亚洲五月| 成人无码髙潮喷水A片| 日本三级第一页| 亚洲AV中文在线| 97丁香五月天| 国产99久久久| 99玖玖精品| 91色综合| 天天插天天操| 情欲禁地| 大地资源色婷婷视频在线| 五月天三级久久| 亚洲综合色色色| 丁香操逼| 精品久久9| 五月婷久久| 丁香色情五月综合激情| 日本va网站| 亚洲综合五月天婷婷丁香| www99热| 开心激情网五月| av五月天婷婷丁香| 婷婷十月激情综合网| 男女激情久久| 五月天另类小说| 亚洲人妻电影| www五月天com| 日韩淑女人妻luan伦激情精品一区二| 激情婷婷在线中文字幕| 亚洲色色色| 午夜精品久久久久久久爽| 婷婷伊人激情婷婷| www.1024久久| 九九色欲网| 亚洲区视频| 深爱激情丁香| 久久精彩视频99| 色色色com| WWW.久久久久久久| 久久久久这里只有精品| 亚洲国产网址| 九九热视频思思| 婷婷综合五月天| 天天摸天天肏| 67194成I人在线观看线路1| 91高潮喷水久久久久久久久| 很操日本7| 操一区| 99精品国产在热久久婷婷| 亚洲国产网站| 九六五月天婷婷| 97婷婷色| 99在线精品视频观看免费下载| 中文成人在线| 五月天激情小说婷婷基地| 激情五月婷婷色色| 91色色色| 99热九九热| 一点色成人网| 少妇口诉沐足视频播放器网址| 狠狠综合网| 婷婷99狠狠躁天天躁| 99熟女啪啪视频| 综合婷婷六月| 大伊香蕉精品视频在线| 四虎成人精品永久免费AV九九| 婷婷五月天av小说| 精品一二三区久久AAA片| 五月丁香六月激情综合| 伊人丁香婷婷东京| 天天色综和网| 亚洲啪| 97色色色色色| 婷婷五月色情| 日操五月婷| 在线视频激情网站| 五月激情四射网站| 丁香五月天视频| 人人摸人人摸| 一级A片天天操夜夜操| 日本女人久久| 大香蕉在线观看9| 嫩草AV久久伊人妇女超级A| 婷婷色五天| 六月色国内综合| 91九色视频| 潮汕成人AV片在线| 操B视频在线播放| 99色综合网| 五月天天爽| 99爱在线| 亚洲精99| 女性自慰系列第五页| 久久A极片| 五月天婷婷伊人| 狠狠狠狠狠狠草| 可以直接看的av| 亚洲综合无码| 色五月情| 东京热伊人| 婷五月天六| 久久五月视频| 狠狠操狠狠插| 狠狠五月天| 久久久久激情| 色欲丁香| 亚洲综合激情五月久久| 五月停停999| 欧美综合激情丁香五月六月婷| 天天舔天天摸天天透| 综合激情综合啪啪| 五月天深爱激情网| 婷婷综合激情| 亚洲六月婷婷| 婷婷五月激情网| 五月天桃色深爱网| 久久精品A片777777| 日本熟妇乱妇熟色A片蜜桃| 日本精品久久久久中文字幕 | 色五月婷婷啪啪五月| 丁香久久五月天视频在线观看| 五月婷婷久久爱| 狠狠操天天日| 日本狠狠网| 激情图片久久| 五月婷婷激情| 婷婷丁香六月天| 久9热插入| 色五月自偷自拍婷婷婷婷| 狠狠色丁香婷婷久久综合| www.五月天婷婷| 欧美精品999| 美女丁香五月天| 欧洲日韩一区二区三区| AV人人操| 啊v视频在线观看| 欧美槡BBBB槡BBB少妇| 深爱五月激情| 丁香久久| 婷婷五月天成人视频| 97久久久免费福利网址| 欧美群妇大交乱婬网| 色五月婷婷视频| 丰满熟女人妻一区二区三| 国产免费一区二区三区三州老师F1F1.CC | 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 丁香五月天在线观看视频| 夜夜噜夜夜奇| 日韩精品一区二区亚洲AV观看| 九九热在线观看视频| 五月丁香六月综合激情无码软件亮点| 亚洲成人AV在线播放| 激情五月婷婷综合| 成人AV网站在线| 97成人丁香婷婷| 九色色| 色婷操逼| 九 九九九AV| 99久久婷婷国产综合精品青桔| 成人欧美Va| 91婷婷色五月| 色婷婷人人| 天天玩夜夜操天天爽| 99免费热视频| 99热在线观看| 亚洲成人一区| 无码操B| 激情第四色| 9久久AV| 国产精品成人网址| peg 2区三区四区的| 婷婷成人视频| 天天插操| 久久6这里只有精品| 另类综合色| 成人无码精品1区2区3区免费看 | 天天爽—爽| 性生活视频98791| 狠狠婷婷色综合| 99成人网一区| 久99久在线| 一区=区操屄高清大全av| 五月婷婷亚洲天堂激情在线| 综合色五月天| 丁香五月停停基地| 精品成人a v无码内射| 色婷婷五月天| 激情婷婷五月女| 超碰日日操| 婷婷色基地在线看| 综合色色色色色色| 色五月婷婷丁香凹凸| 天天草天天舔| 无遮挡国产高潮视频免费观看 | 九九热精品在线| 大香蕉丁香婷婷| 五月丁香六月婷婷综合网| 色播五月| 激情六月下句是什么| 99精品久久久| 97av在线视频| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 色婷婷久久| 婷婷欧美偷拍综合| 91九色精品熟女内射| 色色色99| 91精品久久久久久77777| 日本99久久| 午夜成人天堂久久无码日韩久久| 久久久宗合| 天天综合色| 日韩黄色电影| 色婷婷9| 翔田千里 50岁 无码| 久99热在线观看| 精品网站:999WWW| 五月天婷综合| 五月婷亚洲精品AV天堂| 九九热视频在线观看| 五月丁香六月婷婷综合在线| 婷婷五月天伊人网在线观看视频| 亚洲国产精品VA在线看黑人 | 五月婷在线视频免费看| 色99免费视频中文| 综合网啪啪| 无码啪啪| 99久久九九| 变态 另类 在线| 丁香五月综合AV在线| 9999久久久久| 偷拍九九五月丁香婷婷| 激情五月第四色| 67194国产| 五月婷婷黄色| 综合丁香婷婷五月天| 欧美色图天堂网色| AV五月婷婷露脸| 欧美婷婷丁香五月社区| 日日日日操| www国产亚洲色婷婷com| 婷婷亚洲在线| 丁香五月最新网址| 久久久免费精彩视频| 五月天天天操天天爽夜夜操| 国产精品成人网址| 99日本黄站| 日日日日做夜夜夜夜无码| 9久久狠狠的| 亚洲另类视频| 99久热这里只有精品视频删减版| 婷婷五月五月丁香| 超碰在线精品| 精品成人无码A片观看香草视频 | 91精品国产综合久久久不卡电影| 五月丁香性| 婷婷色在线观看| 精品一二三区久久AAA片| 久久偷拍综合五月天| 精品成人久久久久久久_一二三四视| 狠狠色色| 九九这里是免费的视频5| 色婷婷网| a久久| 五月天激日本色情在线| 人人叉久| 国外亚洲成AV人片在线观看| 97热这里精品在线视频| 99热这里只有精品50| 猫咪伊人久久| www.久久久久久久久久.com| 九九热免费视频| 九九亚洲| 五月丁香婷婷激情澎湃四射| 婷婷激情五月天综合| 91久久九色| 色婷婷小说| 狠狠狠狠狠狠色| 久久久99精品| 天天操夜夜夜夜爽| 丁香婷婷五月色成人网站| 婷婷五月丁香五月基地| 五月丁香综合啪啪| 乱码操操| 五月天淫乱视频| 五月丁香激情在线| 婷婷五月AA五月在线| 内射综合网| www.com在线操视频免费观看| 色五月综合| 五月婷婷欧美| 久9久成人精品视频| 99热 日韩| 婷婷丁香六月| 日韩999| 婷婷欧美综合| 成人免费高清在线播放| 日韩三级高清无码| 99国产视频网| 婷婷五点亚洲| 婷婷五月天亚洲综合| 激情五月天无码| 亚洲日本激情| 玖玖伦理电影| 天天在线天天综合网色| 深爱五月婷婷开心中文字幕| 99热r| 99操逼| 色久九| 色婷婷六月天| 丁香激情久久| 99精品在线观看| 97久久人人| 色五月婷婷av| 亚洲第一综合| 综合久久狠狠| 人人看人人要| 五月丁香激情婷婷综合字幕| 好好干Av| 五月开心六月婷婷在线播放网站| 天天天操天天天爰| 操逼福利视频| 激情六月婷| 婷婷六月激情综合| 噜一噜在线| 亚洲视频操| 九九99免费视频| 岛国AV网| 91男同视频| www...com黄在线观看| 91干网站| 狠狠色狠狠爱| 成人AV免费观看| 久久色五月天| 色五月综合网| 久久五月天网| 婷婷俺去也| 99在线精品免费视频| 一级操逼大片| 丁香五月天天| 日韩色色色色色| 亚洲综合色丁香五月天| 久机视频这只有精品| 色天堂在线| 丁香五月天综合| 午夜不卡久久精品无码免费| 亚洲成人无码免费| 99热自拍| 影音先锋91男人资源在线播放| 日韩色色一区| 欧美狠狠草| 战争与艾拉电影免费观看| 思思热99热| 亚洲99热| 久久密臀婷婷| 激情婷婷五月天| 开心五月综合激情综合五月| 开心婷婷中文字幕| 亚洲乱码精品久久久久..| 色欲AVV| 生活片五区| 国产高清RV综合aVa| 五月婷婷色| 99精品成人无码A片观看金桔| 青青操成人福利| 五月丁香| 久久久久久人妻久久久久久久久久人妻久久久 | 五月婷婷综合影院| 丁六月激情| 影音先锋91资源站| 9色91视频| 三级毛片7979| www.99视频| 日逼免费视频| 婷婷五月激情小说| 五月丁香综合网| 人人色婷婷五月天| 久久婷婷综合五月天| 五月天播播综合| 婷婷在线激情| av操逼网| www狠狠| 五月天四色房丁香亭亭| 免费看欧美成人A片无码| 欧美人人女女精品综合五月天| www.夜夜操.con| 夜夜大香蕉婷婷丁香| http://www.com久久久精品一区| 五月天大香蕉| 99热这里只有精品4| 免费看欧美成人A片无码| 色综合久久88色综合天天看| 79色色色色| 99热66| 欧洲毛片基地c区| 色五月婷婷激情| 久久久国产精品黄毛片| 丁香六月婷婷开心| 超碰人人99| 玖玖@三月天天丁香婷婷| 丁香五月婷婷姐| 91色久| 91精产品自偷自偷综合| 久久这里只有国产视频| 四虎国产精品永久在线国在线| 激情四射婷婷| 99这里热| 噢美99| 青青草婷婷综合五月| 国产亚洲色婷婷久久99精品91| 99男人天堂| 丁香五月六月综合欧美| 丁香五月婷婷操逼| 亚洲va欧美va国产综合久久久| 婷婷五月天激情在线观看 | BT综合在线视频观看| 久久这里只有精品99| 超碰在线免费观看日韩| 激情五月五月五月婷婷| 五月丁香亭亭| 色综合天天网| 久热九九| 色情丁香五月天| www色色com| 另类五月婷婷| 操人无码| AV美美午夜| 熟妇人妻中文字幕无码老熟妇 | 六月丁香五月婷婷首页| 成人精品人妻| 久久婷婷热| 国产精品日日躁夜夜躁| 婷婷久久内射| 婷婷色播婷婷| 九九99在线免费在线观看视频| 丁香婷婷色五月| 97人人干| 亚洲亚洲人成综合网络| 激情五月婷婷在线区| 九久久婷婷| 婷婷视频在线| 欧洲亚洲免费视频9| 新激情综合| 色久影院| 亚洲AV成人片无码网站| 丁香五月偷拍| 国产阿姨日皮艹逼内射视频| 懂色av粉嫩av蜜臀av| 国语精品探花| 26.uuu丁香五月婷婷| AV电影在线播放| 五月久久噜噜| www.91热久久| 久操福利| 久久只有精| 欧美综合激情| 六月激情婷婷| 丁香五月激情六月欧亚激情综合导航| 99爱爱| 亚洲女婷婷五月基地综合久久久| 成人亚洲精品久久久久 | 这里只有精品视频| 69激情小说| 五月天AV大香蕉| 99操碰| A A色色| 婷婷五月丁香香蕉| 久久ww| 热99热9| 色综合久久44| 色狠狠色噜噜AV天堂五区| 婷婷五月天视频亚洲| 亚洲最大在线| 9色91视频| 婷婷五月激情小说| 激情综合4月| 婷婷五月丁香四射| 欧美色宗和激情| 天天日夜夜草进麻麻的子宫| 99干在线| 欧美性生交XXXXX无码小说| 91精品国产色猫| 激情第四色| av性爱在线| 亚洲一个色| 色吊丝99| 婷婷97狠狠成人网站| 玖玖热视频| 久久综合网免费视频| 色图亚洲91| 97色色婷婷| 天天爽天天摸人妻综合网| 九九激情综合| 色五月,婷婷大香蕉| 五月婷婷六月丁香| 99综合自拍| 九色视频这里只有精品| www.婷婷五月天| 丁香狠狠干| 99激情视频| 深爱激情丁香五月| 五月婷婷网久久| 婷婷亚洲日本| 在线99精品| 久久婷婷五月综合色区| 亚洲热视频| 亚洲综合另类| 激情综合色五月丁香六月亚洲| 九九人妻福利| 五月综合丁香婷婷| 九九热99在线视频| 五月婷婷电影院| 亚洲五月天激情| 97中文在线| 国产偷人妻精品一区| 五月天婷婷成人资源站| http:色情日本com| 婷婷五月天网| 99ri国产在线| 五月丁香激情综合啪啪| 婷婷色五月天在线观看| 天天拍久久| 成人欧美一区二区三区在线观看| 99热国产精品| 任我肏| 超碰99资源站| 欧美性爱一区| 丁香五月最新网址| 色婷婷综合丁香五月天| 久久月天堂| 日韩丁香涩| tingtingcaobi| 亚洲成av人影院| 粉嫩AV久久一区二区三区| 婷婷色中文字幕| 久久99久久久久久| ww久久| 亚洲成人av在线| 色综合九九色综合88| 国产精品VA在线| 99热成人| 五月婷婷视频| 丁香色综合| 99九九99九九九视频精彩| 热五月婷婷| 91超碰人人操| 婷婷精品| 丁香六月啪| 九九色逼| 日日噜噜夜夜狠狠久久丁香五月| 无码激情AAAAA片-区区| 男人操女人高潮91视频| 久久久久久久久18久久| 午夜]香婷婷深深爱| 97丁香视频| 久草丁香婷婷五月天婷| 亚洲情色一区| 狠狠久久婷五月| 亚洲精久久| 大香蕉520| 亚洲色五月| 五月激情综合婷婷| 玖玖精品资源| 中文AV网| 婷婷99中文字幕| 99精彩视频| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 国产真人做爰视频免费| 久久99人人| 国产色香蕉精品五夜婷| 人人操91| 超碰AAAAAAV| 丁香五月a| 婷婷的99视频网站| 日日噜噜夜夜狠狠久久丁香六月| 四川BBB搡BBB爽爽视频| 中文字幕不卡网站| 影音先锋一区| 丁香婷五月天| 曰日爽日日操| 婷婷五月天开心网| 亚洲色无码A片一区二区麻豆| 97日日碰碰| 这里只有精品视频222| 亚洲AV激情五月综合网| 六月婷婷在线| 亚洲欧美婷婷五月色综合| 激情五月天婷婷| 校园春色亚洲色| 99热这里只有精品1025| α久久| 五月激情影院| 无码AV免费精品一区二区三区| 超碰操日| 成人看片网站| 色婷婷六月丁香综合欲精品| 久久多色| 日韩av免费版| 婷婷伊人网| 午夜激情五月天| 天天狠狠夜夜狠狠2023| 665566 无码| 全亚洲最大的婷婷五月天网站COM| 婷婷色色网站| 一级黄色影片| 激情 婷婷 丁香五月天| 996热| 日本久久极品| 色色网站在线免费观看视频| 色五月大| 五月天激情婷婷| 九月久久婷婷| 五月中旬婷婷丁香六| 99九九精品视频| 婷婷字幕在线| 五六月婷婷| 综合99久久天天综合| 久久99人人| 丁香丁婷五月激情| 丁香五月六月婷婷综合| 久久思思热| 婷婷伊人75| 99久久大片| 色婷婷狠狠| 五月丁香另类图片| 婷婷六月色| 国产婷婷婷| 色综合天天网| 99久久综合网| 97热精品| 亭亭五月丁香五月天激情| 精品香蕉99久久久久网站| 日韩啪啪视频| 丁香六月综合激情| 无码一级片| 99亚洲色色| 丰满老熟妇BBBBB搡BBB| 掩去也综合五月视频| 婷婷五月天av| 婷婷激情四射五月天| 色婷婷综合网站| 26uuu国产激情视频| AA丁香综合激情| 中文字幕丰满乱孑伦无码专区| 色五月开心婷婷| 爽天天天天天天天| 久久免费干| 激情五月天小说视频| 亚洲AV免费在线| 玖玖婷婷五月| 亚洲丁香婷婷丁香五月天激情| 久久婷婷五月天丁香| 欧洲激情网站| 99亚洲精品视频| www色色com| 久久99久久99精品免视看婷| 色综合色综合色综合| wWw色五月| 色噜噜狠狠色综合日日| 综合激情五月天| 成人在线精品| 色狠狠综合| 色色色热热热| 色五月xxx| 国产成人精品一区二三区熟女在线| 亚洲第一色网站| 日本一级一级一级一级| 婷婷五月丁香综合激情小说| 亚洲另类电影| 五月婷婷激情综合在线| 99热在线观看| va婷婷在线免费观看| 九九婷| 九九99久久| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 婷婷丁香人妻天久久| 久操大香蕉| 99区视频| 久久涩视频| 啪啪小说五月天| 九九色之九九色之88| 色五月综合| 99热欧美在线观看| 人妻日日日| 五月丁香六月婷婷激情视频在线观看免费| 综合久久首页| 婷婷色在线观看| 噜噜色五月| 五月丁香亭亭电影久久| 99热久| 久久作爱| 国产激情久久久| 久久99热 这里有精品| 久久九九亚洲| 夜夜躁狠狠 | 激情开心五月天| 丁香五月色| 六月色色| 色色色图| 亚洲日韩国产黑丝黑丝AVAV一区二区三区 | 婷婷丁香六月激情综合| 色婷婷影视99| 天天爽人人综合免费7799| 丁香婷婷人妻综合网| 久久丁香婷婷色情综合| 丁香五月婷婷基地| 丁香五月激情性色郤| 亚洲超级碰| 国产亚洲精品AAAAAAA片| 日本VA视频| 色欲久久综合| chaopeng在线人人| 色色色成人网| 日本五月视频| 久热9| 亚洲成人AV高清字幕| 婷婷激情六月| 精品国产va久| 婷婷日本在线| 久99热| 五月天播播中文字幕| 亚洲欧美成人在线| 亚洲天堂青草| 激情AV| 日韩色五月| av在线超清中文| 婷婷内射视频在线| 爱久久小说下载网| 亚洲综合婷婷| 深爱激情丁香五月| 97色色色色色色色| 久re热视频| 综合色色五月| 久99热| 狠狠插狠狠插| 99精品网站| 色蜜婷婷| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 夜夜操天天干| 五月香蕉婷婷| 久久久这里都是精品| 天天干天天曰天天射| 一本色道久久88加勒比| 色五月综合在线| 国产激情在线| 99热777| 十月丁香婷婷| 五月丁香综合啪啪| 五月 婷 久| 国产真实乱对白精彩| 久久五月天婷婷| 色五月婷婷亚洲| 丁香花五月天| 安息电影在线观看完整版| 色色免费网站| 色九综合| 日韩三级视频一区二区| 成人国产网站在线免费看| 开心深爱激情网| 久久99婷婷| 99热久草| 色婷婷五月天激情在线观看| 久久99久久99精品免观看软件 | 99热只有这里才是精品| 亚洲激情综合色站| 婷婷大香蕉| 91九色精品熟女内射| www.99精品视频| 九九中文字幕九| 日韩在线看AV| 久久久久久五月天| 五月丁香狠狠爱婷婷综合| 婷婷五月天中文字幕.| 久久9精品视频| 久久98热re| 14色综合婷婷| 都市激情亚洲| 九月丁香八月婷婷久久综合久97| 婷婷五月综合色小姐小说| 成人国产欧美大片一区| 农村熟妇高潮精品A片| 国产av天堂| www.zbzhongsen.com| 97丁香五月天| 五月婷婷丁香伦理网| 五月丁香久久网| 情五月亚洲婷婷| 色青五月天| 99er国产| 天天做综合网色综合| 久久激情五月天| 色99在线观看| 99色色网| 91一起操| 国产日比| 无码激情AAAAA片-区区| 九九婷婷五月天| 亚洲精级| 99欧美精品99日本精品| 狠狠色噜噜色狠狠狠综合色 | 久久精彩综合视频| 欧洲亚洲最新精品| 五月婷婷精品视频| 麻豆五月丁香婷婷| 色五月激情网| 久操人妻| 色综合久久88色综合天天看| 色五月六月| 国产肥白大熟妇BBBB视频| 超碰九热| 丁香婷婷五月人体| 996er热| 99这里只有免费的精品| 五月的丁香六月的婷婷| 激情深爱综合网| 午夜天堂啪啪| 乱岳熟女50岁| 色婷婷狠狠久久综合五月| 色天使色婷婷| 成人天天爽| 五月丁香六月情婷婷久久| 丁香婷婷视频在线| 久久婷婷五月| 天堂久久久久天堂网| av第一二区| 亚洲精品操一操、噜一噜、摸一摸、爽 | 色综合久久天天综合网| 亚洲V国产V欧美V久久久久久| 中文字幕成人日韩| 五月丁香啪啪啪| 欧洲激情五月天| 九九大香蕉黄色影院| 欧美性做爰大片免费看办公室 | 婷婷五月AV| 六月丁香婷婷尤物| 综合网啪啪| 日日干夜夜干| 六月丁香狠狠爱| 欧美综合丁香网| 久色资源网| 天天干天天拍| 69精品人妻不卡视频| 99re久热只有精品6在线直播| 人人草人人视| 久久婷婷视频| 热热99爱爱| 国产色丁香| 五月丁香在线观看| 性一交一乱一交A片久| 免费亚洲成人电影AV| 婷婷五六月丁香| 美欧成人视频| 五月天社区婷婷| 思思热天天看| 情久久综合五月天| 白人荫道BBWBBB大荫道| 97干免费视频| 色五婷婷开心缴| 可以看的av| 9l视频自拍9l视频自拍九色学生| 五月婷婷婷婷婷婷艺术| 激情综合网五月丁香| 色婷婷五月丁香色| 午夜 外网 精品 在线| 国产成人网址| 九九九九九九九九九九九九九国产精品| 妻久久久久| 丁香色五月天| 99九九玖玖| 99九九精品视频| 久久精品99国产精品日本| 操人91| 91超级碰在线视频| 日韩av免费版| 五月伊人视频在线看| 丁香五月偷拍| 婷婷久久亚洲| 人妻久久久久久久 | 天天综合天综合| 日本人妻伦在线中文字幕| 久久女人天堂| 色天堂A| 伊人三级激情| 强伦轩人妻一区二区电影| 亚洲亚洲人成综合网络| 精品色情一区二区三区四区| 99自拍视频| 亚洲综合久| 天天爱天天操| 蜜臀99久久精品久久久久| 五月天伊人综合| 四色五月婷婷| www.十八禁不禁AV.com| 99热成人| 五月天婷五月天综合网在线观| 五月天啪啪啪| 影音先锋噜一噜| 人人操日| 99ri精品| 五月天婷婷在线播放| 久久精品99久久| 久婷婷婷| 丁香花五月天激情| www.久久久.com| 九九热啪啪| 中文激情网| 天天干,天天舔| 激情婷婷五月天| 色久在|