-
适用场景:1.用户实例出现性能瓶颈,感觉自己的数据库执行效率越来越低2.或通过监控发现在某些时段CPU,IO较高 操作步骤:1.首先在客户端通过rdsuser账号连接到你的实例,在管理面中执行以下语句 declare @DatabaseName nvarchar(100)set @DatabaseName = 'Wisdom_TT_ODS' select top 100DB_NAME(st.dbid) as DBName, OBJECT_NAME(st.objectid,st.dbid) as ObjectName,substring(st.text,(qs.statement_start_offset/2)+1,((case qs.statement_end_offset when -1 then datalength(st.text) else qs.statement_end_offset end - qs.statement_start_offset)/2) + 1) as Statement,st.text as Query,qp.query_plan,plan_generation_num,creation_time,last_execution_time,execution_count,total_worker_time,min_worker_time ,max_worker_time,total_logical_reads,min_logical_reads,max_logical_reads,total_elapsed_time,min_elapsed_time,max_elapsed_time,total_rows,min_rows,max_rows,total_worker_time/execution_count as avg_worker_time --平均CPU耗时,total_logical_reads/execution_count as avg_logical_reads --平均逻辑读,total_elapsed_time/execution_count as avg_elapsed_time --平均总耗时,total_rows/execution_count as avg_rows --平均处理数据行,sql_handle ,plan_handle,query_hash,query_plan_hashfrom sys.dm_exec_query_stats qscross apply sys.dm_exec_sql_text(plan_handle) stcross apply sys.dm_exec_query_plan(plan_handle) qpwhere st.dbid=DB_ID(@DatabaseName)and text not like '%sys.%'and text not like '%[[]sys]%'order by avg_worker_time desc 2.我们可以看到查询结果中相应数据库中的SQL执行记录以及对应的资源消耗详情。字段说明详见:http://technet.microsoft.com/zh-tw/library/ms189741.aspx 3.其中最常用的是total_worker_time 和 total_elapsed_time,这两个参数一个是CPU累计消耗时间,一个是SQL执行累计消耗时间,通过倒序排序,从而获得该数据库或整个实例上面消耗最高的前10 SQL语句 4.后面就需要用户自己通过Statement中的SQL语句,结合自身应用业务场景进行优化了。注:query_plan里面的执行计划有很好的参考价值 如果你实在无法优化也没关系,可以花钱购买华为RDS DBA服务,我们来帮你优化。
-
基于RDS For SQL Server爬虫实践云数据库(SQL Server)+云数据库客户端(DAS)背景本教程爬取的是新浪微博微公益平台的微拍卖拍品信息列表。爬虫爬取的信息为拍品序号、拍品名称、起拍价和当前价。我们需要在数据库中构建一个存储这4个信息的表格,随后用爬虫爬取数据将数据存入数据库中。字段名字段说明举例Id序号1project_name拍品名称春节晚会小虎队演出服-霹雳虎project_start_price起拍价100Project_now_price当前价57680 下面,让我们开始搭建小爬虫吧!1.下载软件1.1 下载pycharm community版>下载路径:https://www.jetbrains.com/pycharm/download/#section=windows 选择community版1.2下载python2.7.15>下载路径:https://www.python.org/downloads/release/python-2715/,选择Windows x86-64 MSI installer2.安装2.1 安装python-2.7.15>运行python-2.7.15.amd64.msi>Install for all users>选择目标路径,点击Next>点击Next>点击Finish2.2 安装PyCharm>运行pycharm-community-2018.2.1.exe>点击Next>选择默认路径即可,也可以自定义路径,点击Next。>根据系统操作系统版本选择, 64位系统选择64-bit launcher, 其他勾选如上图。>点击Install>勾选Run Pycharm Community **,点击Finish>运行PyCharm>阅读完政策说明后点击Accept>点击create new project>设置Project的存储路径>点击create>点击close2.3在pycharm中安装第三方库>点击file>点击settings>点击project untitled1(其中untitled1为自定义的项目名)>点击 project interpreter>点击右侧的“+”号>在搜索框中输入pymssql,选中pymssql, 点击Install Package出现以下提示说明安装成功,关闭PyCharm 3.购买云数据库在华为云官网开发者支持计划领取免费套餐,或者购买SQL Server数据库4.申请数据库客户端DAS>目前DAS在公测阶段,您可以通过以下链接申请免费试用https://www.huaweicloud.com/product/das.html5.登录华为云数据库管理页面>DAS服务申请成功后登陆管理控制台,选择您要存储数据的实例,点击登陆,跳转到DAS登陆页面输入管理员账户名和密码,账户名可在实例信息页面查到,一般默认为rdsuser,密码为您在购买数据库实例时输入的管理员密码。 >登陆DAS后右键点击实例名>点击SQL窗口,将以下SQL语句输入编辑框中,点击执行SQL语句,执行成功后sina数据库就建好啦。CREATE DATABASE [sina]CONTAINMENT = NONEON PRIMARY ( NAME = N'sina', FILENAME = N'D:\RDSDBDATA\DATA\sina.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )LOG ON ( NAME = N'sina_log', FILENAME = N'D:\RDSDBDATA\DATA\sina_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)随后删除上述SQL语句,并在在SQL语句输入框中输入以下SQL语句,建立sina_paimai表USE [sina];CREATE TABLE [sina].[dbo].[sina_paimai]([id] int NOT NULL IDENTITY (1,1) ,[project_name] nvarchar(max) NULL ,[project_start_price] nvarchar(max) NULL ,[project_now_price] nvarchar(max) NULL );ALTER TABLE [dbo].[sina_paimai] ADD CONSTRAINT[PK_sina_paimai] PRIMARY KEY CLUSTERED ([id]) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY];ALTER TABLE [dbo].[sina_paimai] SET (LOCK_ESCALATION = TABLE);完成上述步骤后我们已经在sina中新建了一张名为sina_paimai的表,表**有四个字段,分别是id,project_name,project_start_price,project_now_price 6.完成以上步骤后,只差最后一步,爬虫就搭建完成啦。>打开pycharm>右键点击project untitled1>点击new>点击python file 给你要创建的python程序起一个名字,点击OK.然后把以下“sina爬虫.txt”代码复制进你刚刚创建的python文件中,并把以下这段代码中的前四个字段依次改成你的数据库实例公网IP:端口号,数据库账户名,密码和数据库名保存就可以啦~connection=pymssql.connect( 'xxx.xxx.x.xxx:xxxx', 'rdsuser', 'xxxxxxxx', 'sina', charset='utf8', )爬虫代码:见下方附件 最后点击run!7.在数据库客户端DAS中查看爬取的数据>登录DAS, 在SQL窗口中输入SELECT * FROM `sina_paimai`,点击执行SQL就可以看到爬取的结果啦
-
适用场景:微软Adventure示例数据库是微软提供的官方学习数据库,里面提供OLTP和OLAP的真实数据库场景,极大的便利了新人学习数据库的使用和入门,并且该数据库紧密的结合了微软的官方文档和三方学习资料,是用户入门SQL SERVER 的不二选择。 下载地址:请下载一个SQL SERVER 2014 以上版本的AdventureWorks数据库https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks 准备阶段:在一切开始之前,你需要到华为官网注册一个账号,并申请一个RDS SQL SERVER 2014 Web 或 RDS SQL SERVER 2016 Web版实例 安装步骤:1.点击上面链接进入微软官网下载最新Adventure实例数据库,进入页面后点击要下载的bak文件(推荐AdventureWorks2014.bak)。备注:AdventureWorks是OLTP场景的业务数据库;AdventureWorksDW是OLAP的的分析型数据库;大家根据需要选择下载,考虑到大小关系,本次就仅下载AdventureWorks2014.bak,给大家进行演示。sql-server-2016-samples.zip:是微软2016新特性的用例脚本,方便大家对2016新特性进行学习用的。2.将AdventureWorks2014.bak备份文件保存到本地后,我们账号登录华为云官网,进入对象存储服务 3.我们在上面先创建一个公共桶obs-qian。注意:1.该桶所在区域必须跟RDS SQL SERVER 实例所在区域一致 2.该桶最好设置为公共读写 4.桶建好之后,可以直接通过在线页面能进行上传点击刚才生成的桶,在对象里面可以上传文件到根目录。注意:1.小于50M的文件支持页面上传2.目前DRS服务仅支持根目录上的备份文件上传,所以请直接上传文件,不要添加文件夹3.注意上传时不要点击KMS加密功能 5.如果你的备份文件大于50M,则需要下载OBS客户端进行上传操作。a.工具下载地址:https://developer.huaweicloud.com/toolsb.选择业务工具,下载OBS Browser工具 到本地,下载完成后可直接解压使用c.解压后双机obs.exe打开客户端通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择进入刚才添加的桶名obs-qian,在根目录下上传bak文件。 7.备份文件上传成功后就可以进入DRS服务,进行离线还原操作了。a.在页面上找到DRS数据库复制服务b.进入DRS控制台界面后,点击左侧离线迁移管理,再点击右侧创建迁移任务备注:如果你欠费了就看不到右边的创建迁移任务的按钮,请充值哦c.进入任务界面后在下方选中刚才上传备份文件的桶名,这是他会自动刷出该桶根目录下的所有.bak的备份文件,选中刚才上传的备份文件,点击下一步。备注:1.备份文件后缀必为.bak2.备份文件必须在桶的根目录下d.在目标RDS实例名选中你要还原的目标实例;该实例必须是SQL SERVER 2014或以上版本,在待还原数据库名输入你要还原的数据库名称,如果已有同名数据库存在于该目标实例上,请选中覆盖还原按钮。备注:1.目标实例的版本必须要大于等于你的备份文件源实例的版本,例如:你是从2014实例上备份下来的备份文件,你就只能在2014,2016实例上进行还原,无法还原到2008上2.待还原数据库名称需要注意大小写,必须跟备份文件中的数据库名称一致。e.点击下一步,最后生成离线迁移任务,并在离线迁移管理界面可查看到该任务的进展。备注:1.迁移过程中请耐心等待,原则上100G大小的备份文件还原只需要1小时2.迁移过程失败会有详细的报错提示,可根据报错提示修改对应设置再行上传,如有问题可联系在线客服或提工单寻求帮助f.迁移任务成功后可通过实例管理界面登录功能连接在线实例进行查看。1)进入关系型数据库管控面,点击登录2)在弹出页面输入该实例rdsuser主账号+密码,即可登入Das在线管理工具。3)登入后我们可以看到AdventureWorks数据库已经还原成功,大家快去使用吧。备注:DAS是华为公有云RDS全新上线的在线数据库管理工具,兼容MYSQL&SQL SERVER,便捷易用,目前公测中,申请入口:http://www.huaweicloud.com/product/das.html 微软官方学习链接:微软培训体系:https://www.microsoft.com/zh-cn/learning/sql-training.aspx 微软认证体系;https://www.microsoft.com/zh-cn/learning/sql-certification.aspx SQL SERVER 2014在线学习:了解核心数据库概念 (20–25%)了解数据在表中的存储方式了解什么是表,它与将存储在数据库内的数据有怎样的关系;列/字段,行/记录了解关系数据库概念了解什么是关系数据库,关系数据库管理系统 (RDBMS) 的需求,以及如何建立关系了解数据操作语言 (DML)了解什么是 DML,了解它在数据库中的角色了解数据定义语言 (DDL)了解如何使用 T-SQL 创建数据库对象,例如表和视图MSDN官方资料:设计表3 - 实施关系数据库数据操作语言 (DML) 语句 (Transact-SQL) 创建数据库对象 (20–25%)选择数据类型了解什么是数据类型,数据类型重要意义所在,以及数据类型对存储需求的影响了解表和如何创建表表的用途;使用恰当的 ANSI SQL 语法在数据库中创建表创建视图了解何时使用视图,如何使用 T-SQL 或图形设计器创建视图创建存储过程和函数选择、**、更新或删除数据MSDN官方资料:发布数据和数据库对象CREATE TABLE (Transact-SQL)如何:创建视图 (Visual Database Tools) 操作数据 (25–30%)选择数据利用 SELECT 查询从一个表中提取数据,使用联接提取数据,使用 UNION 和 INTERSECT 合并结果集**数据了解如何将数据**数据库,如何使用 INSERT 语句更新数据了解如何使用恰当的 UPDATE 语句更新数据库内的数据,如何将更新后的数据写入数据库,如何使用表进行更新删除数据从一个或多个表中删除数据,使用事务确保数据完整性和参照完整性MSDN官方资料:使用 SqlDataSource 控件选择数据演练:使用 LinqDataSource 和 DetailsView 控件检索、更新、**和删除数据如何:从数据库中删除行 (LINQ to SQL) 了解数据存储 (15–20%)了解规范化了解规范化的原因,五种最常见的规范化级别,如何将数据库规范化为第三种规范形式了解主键、外键和组合键了解数据库中使用键的原因,选择恰当的主键,为键选择恰当的数据类型,为组合键选择恰当的字段,了解外键与主键之间的关系了解索引了解聚集索引和非聚集索引及其在数据库中的用途MSDN官方资料:使用键如何:在查询中处理组合键 (LINQ to SQL)使用索引 管理数据库 (10–15%)了解数据库安全概念了解保护数据库的需求、可保护的对象以及应保护的对象,了解用户帐户和角色了解数据库备份和还原了解各种备份类型,例如完整备份和增量备份,备份的重要性,如何还原数据库MSDN官方资料:SQL Server 安装的安全性考虑因素SQL Server 安全性 (ADO.NET)在 SQL Server 中备份和还原数据库
-
适用场景:1.用户可以将本地实例上的数据库通过全量备份生成备份文件,并通过OBS服务与DRS服务,将该备份文件直接还原到RDS SQL SERVER实例上2.用户从本地备份出来的备份文件的版本必须小于等于要还原的目标实例的版本。例如:你本地是2012标准版的实例,你备份出来的文件就只能还原到2014,2016标准版或企业版,不能还原到2008 的所有版本,和2014,2016的Web版上 操作步骤:1.首先备份你的本地实例上的一个数据库或多个数据库到一个备份文件中,备份文件后缀必须为.bak。脚本命令如下,我们可以将多个数据库备份到同一个备份文件中,也可分开来备份:BACKUP DATABASE [AdventureWorks] TO DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT, NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD, STATS = 10 BACKUP DATABASE [CBC] TO DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT, NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD, STATS = 10 BACKUP DATABASE [RDM_Count] TO DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT, NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD, STATS = 10 2.在备份前,需要对每一个数据库进行以下信息的确认:1.点击数据库属性,确认该数据库的恢复模式必须是完整;兼容性级别必须大于等于100;如果不是请更新该数据库,避免迁移报错2.同时数据库的恢复模式请改为完整 3.完成以上工作后,我们账号登录华为云官网,进入对象存储服务 4.我们在上面先创建一个公共桶。注意:1.该桶所在区域必须跟RDS SQL SERVER 实例所在区域一致 2.该桶最好设置为公共读写5.桶建好之后,可以直接通过在线页面能进行上传点击刚才生成的桶,在对象里面可以上传文件到根目录。注意:1.小于50M的文件支持页面上传2.目前DRS服务仅支持根目录上的备份文件上传,所以请直接上传文件,不要添加文件夹 6.如果你的备份文件大于50M,则需要下载OBS客户端进行上传操作。a.工具下载地址:https://developer.huaweicloud.com/toolsb.选择业务工具,下载OBS Browser工具 到本地,下载完成后可直接解压使用c.解压后双机obs.exe打开客户端通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择添加桶,选择添加外部桶,输入下载页面上给出的桶名6).添加成功后点击进入该桶,在根目录下上传bak文件。 7.备份文件上传成功后就可以进入DRS服务,进行离线还原操作了。a.在页面上找到DRS数据库复制服务b.进入DRS控制台界面后,点击左侧离线迁移管理,再点击右侧创建迁移任务备注:如果你欠费了就看不到右边的创建迁移任务的按钮,请充值哦c.进入任务界面后在下方选中刚才上传备份文件的桶名,这是他会自动刷出该桶根目录下的所有.bak的备份文件,选中刚才上传的备份文件,点击下一步。备注:1.备份文件后缀必为.bak2.备份文件必须在桶的根目录下d.在目标RDS实例名选中你要还原的目标实例;在待还原数据库名输入你要还原的数据库名称,如果已有同名数据库存在于该目标实例上,请选中覆盖还原按钮。备注:1.目标实例的版本必须要大于等于你的备份文件源实例的版本,例如:你是从2014实例上备份下来的备份文件,你就只能在2014,2016实例上进行还原,无法还原到2008上2.待还原数据库名称需要注意大小写,必须跟备份文件中的数据库名称一致。e.点击下一步,最后生成离线迁移任务,并在离线迁移管理界面可查看到该任务的进展。备注:1.迁移过程中请耐心等待,原则上100G大小的备份文件还原只需要1小时2.迁移过程失败会有详细的报错提示,可根据报错提示修改对应设置再行上传,如有问题可联系在线客服或提工单寻求帮助f.迁移任务成功后可通过实例管理界面登录功能连接在线实例进行查看。1)进入关系型数据库管控面,点击登录2)在弹出页面输入该实例rdsuser主账号+密码,即可登入Das在线管理工具。3)登入后我们可以看到3个数据库已经全部还原成功,大家快去使用吧。备注:DAS是华为公有云RDS全新上线的在线数据库管理工具,兼容MYSQL&SQL SERVER,便捷易用,目前公测中,申请入口:http://www.huaweicloud.com/product/das.html
-
使用说明:实例参数修改:1.每一个实例都有自己唯一的参数组,在实例管理页面-->实例详情页-->参数修改 2.每个实例的参数都是唯一的修改后不会对其他实例产生影响 参数组管理:系统默认:1.每个SQL SERVER 版本都有对应的唯一默认参数组模板: 2.选中对应版本的模板,点击更多下面的应用,可将该默认参数组模板上的参数覆盖选中的实例对应参数 备注:默认参数组中的所有参数组都是不可以修改的。 自定义:1.同时你可以在自定义页面下根据一个默认参数组模板来创建自定义参数组。 2.创建的自定义参数组可以有限的修改其中部分参数的值,修改完成后点击保存,同时可将该自定义参数组应用到对应版本的多个实例上。 更具不同的场景来配置你的参数值:SQL SERVER 的默认参数组模板中已经给出了不同版本下的参数值最佳实践,我们仅需要针对不同场景改动如下参数即可有效的控制实例匹配对的场景。max degree of parallelism:参数说明:每个执行语句的CPU最大并行度,该参数值默认为0,当你在使用实例时,SQL SERVER会通过查询引擎自动的给你的每一个请求分配CPU执行计划,以通过并行执行的方式有效提升你的执行性能。参数值对应的场景:1.当你本地实例以查询获取结果为主,该参数值为02.当你本地实例以写入,更新,删除为主,该参数可设置为1 max server memory (MB)参数说明:该参数用于控制实例上SQL SERVER数据库服务占用整个服务器的最大内存的上限参数值对应的场景:华为RDS SQL SERVER已经根据你的每个实例自身大小做出了对应的适当配置,该值你可不必更改,如果实在要改请注意以下限制条件。1.不能低于2G2.不能高于你实例最大内存的95% user connections参数说明:该参数用户控制实例上用户发起的最大连接数参数值对应的场景:该参数目前默认为1000,可根据实际情况进行调整。1.设置为0,该实例连接数不受限制2.不能设置1-10之间的值
-
适用场景:用户本地长期使用Navicat等三方客户端,在上云到RDS SQL SERVER后需要在连接和创建数据库的时候注意一些配置选项。 推荐:目前华为云RDS SQL SERVER是可以完美适配SQL SERVER官方客户端SSMS的推荐大家选用。官网最新下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/sql-server-management-studio-changelog-ssms?view=sql-server-2017 使用帮助:同时,我们也发现大量的小伙伴在使用一些比较流行的三方客户端工具的时候出现了一些适配问题,在下面我将主要针对Navicat这款当前比较流行的三方数据库客户端工具,连接RDS SQL SERVER数据库服务进行操作上的一些问题进行详细说明:1.在打开NAVICAT客户端后点击连接弹出客户连接界面,在界面上需要输入一个连接名称,同时需要输入你的实例IP+端口号,rdsuser主账号加密码,点击连接测试成功后再确定,就可以连接到实例了。备注:注意IP和端口之间用英文逗号隔开',' 2.连接到实例后下一步就是开始创建数据库,右键实例选择新建数据库第一步,输入数据库名称,拥有者推荐选择rdsuser主账号,排序规则最好跟实例默认规则一致,查询实例默认排序规则脚本如下:SELECT SERVERPROPERTY('Collation')恢复模式必选FULL,不然该数据库不会纳入备份策略兼容性级别跟据需要选择100以上即可 第二步,文件组一般情况下无需修改第三步,文件中文件目录必须是D:\RDSDBDATA\DATA\,这个地址是RDS实例唯一允许建库地址,同时修改完mdf的数据文件后,还要注意同时修改下面的log文件名,修改日志的文件目录同数据文件目录,其余选项根据需要设置就好。 第四步,最后点SQL预览,脚本大致如下,点击确定数据库创建成功CREATE DATABASE [Test20180717]ON PRIMARY(NAME = N'Test20180717',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717.mdf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 1024KB)LOG ON(NAME = N'Test20180717_log',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717_log.ldf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%)COLLATE Chinese_PRC_CI_AS GO EXEC [Test20180717].dbo.sp_changedbowner N'rdsuser'GO 根据以上步骤建库建表成功后,下面的具体操作通过T-sql语句来进行执行问题就不大了。同时我们可以看到在缺乏管理员权限的支撑下,三方工具的友好性的确大打折扣,所以强烈推荐大家还是尽量使用官方客户端SSMS,是完全免费下载使用的。
-
适用场景:1.用户在本地实例上创建的SQL SERVER数据库2本地SQL SERVER实例的版本高于RDS SQL SERVER实例的版本时,无法通过DRS提供的备份还原进行迁移3.不想进行数据库粒度的同步,仅针对其中个别表对象进行同步 操作步骤:1.需给你的RDS SQL SERVER实例绑定一个EIP点击实例管理,在基本信息下点击弹性IP绑定,通过弹出框选中对应的弹性IP。2.在本地安装SQL SERVER客户端管理工具,通过弹性IP进行连接微软官网客户端下载地址(注意根据本地环境的语言选择下载安装包):https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017下载完成后通过客户端工具测试连接目标实例:你可以在本地同时连接本地实例&RDS实例3.通过SQL SERVER自带的脚本生成工具,将ECS上的数据库结构脚本化生成出来,步骤如下:a.选中要生成schema脚本的数据库,点击鼠标右键选择任务-->生成脚本 b.在导航页中根据提示选择下一步,并确认要导出的对象,可选全部,也可以选择独立对象模块导出c.下一步,选择将要导出的文件保存到对应的位置(推荐保存到本机上生成一个SQL 脚本方便保存执行)d.同时点击高级按钮进入详细选项页面,根据实际需要选择具体脚本生成规则和相关细节,例如:触发器,索引,唯一键,主键,服务器版本等重要选项。特别注意:脚本Drop 和 Create;要编写脚本的数据的类型两个重要选项e.最后点击下一步完成脚本生成5.将生成的脚本SQL 文件在SSMS上打开,连接到RDS对应实例上,先创建一个空数据库,再通过刚才创建的脚本在该数据库上执行,以创建相关结构。6.完成以上步骤后通过SQL SERVER自带的导入导出功能完成数据迁移,步骤如下:a.选择要导出数据库的数据库,右键点击选择任务-->导出数据 b.根据导航选择下一步,在选择数据源里面数据源:选择SQL SERVER Native Client(该选项根据你的数据源类型进行选择)服务器名称:输入数据源实例所在的IP加端口号,如果是本地可以直接输入实例名或者localhost身份验证:选择使用SQL SERVER身份验证,并在下方输入rdsuser账号和密码最后选中你要导出的数据库作为数据源c.在选择目标栏目中,一切同上,主要选择数据库的时候要选中要导入的对应数据库,然后点击下一步,选中复制一个或多个表或视图的数据d.在选择源表和视图中,根据需要的选择导出的对象进行选中,可通过shift进行多选,注意一般会去掉后面的对应视图。此时如果该对应已经在目标库上创建完则会自动根据名称进行匹配,如果没有则会自动生成初始框架不带索引,外键。e.关键来了,全选你要导出的所有对象,再点编辑映射,根据实际需要进行选择,但是至少要选中启用标识**f.后面点击下一步开始数据导出导入进度查看,一般效率为4000行/秒 备注:在整体流程中架构同步相关的步骤可以是不做的,但是迁移过去的仅包含相关数据,结构可能不一致;同时如果先做了架构同步后再迁移数据库,数据迁移过程可能会因为架构约束导致失败(如:外键约束,自增长键,timestamp),所以具体实现过程中请大家根据实际情况选择性操作。
-
适用场景:1.用户在ECS上创建的SQL SERVER数据库2.当你ECS上SQL SERVER实例的版本高于RDS SQL SERVER实例的版本时,无法通过DRS提供的备份还原进行迁移3.不想进行数据库粒度的同步,仅针对其中个别表对象进行同步 操作步骤:1.创建一个ECS虚拟机,注意虚拟机跟对应的RDS应在通Region,同VPC下2.在ECS上安装的SQL SERVER 2014,2012,2008版本,至少是标准版,最好跟要还原的目标实例版本一致3.将本地bak文件上传至ECS服务器端,并通过该ECS上的SQL SERVER服务器进行本地还原4.通过SQL SERVER自带的脚本生成工具,将ECS上的数据库结构脚本化生成出来,步骤如下:a.选中要生成schema脚本的数据库,点击鼠标右键选择任务-->生成脚本b.在导航页中根据提示选择下一步,并确认要导出的对象,可选全部,也可以选择独立对象模块导出c.下一步,选择将要导出的文件保存到对应的位置(推荐保存到本机上生成一个SQL 脚本方便保存执行) d.同时点击高级按钮进入详细选项页面,根据实际需要选择具体脚本生成规则和相关细节,例如:触发器,索引,唯一键,主键,服务器版本等重要选项。特别注意:脚本Drop 和 Create;要编写脚本的数据的类型两个重要选项 e.最后点击下一步完成脚本生成5.将生成的脚本SQL 文件在SSMS上打开,连接到RDS对应实例上,先创建一个空数据库,在通过该脚本在该数据库上创建相关结构。6.完成以上步骤后通过SQL SERVER自带的导入导出功能完成数据迁移,步骤如下:a.选择要导出数据库的数据库,右键点击选择任务-->导出数据 b.根据导航选择下一步,在选择数据源里面数据源:选择SQL SERVER Native Client(该选项根据你的数据源类型进行选择)服务器名称:输入数据源实例所在的IP加端口号,如果是本地可以直接输入实例名或者localhost身份验证:选择使用SQL SERVER身份验证,并在下方输入rdsuser账号和密码最后选中你要导出的数据库作为数据源c.在选择目标栏目中,一切同上,主要选择数据库的时候要选中要导入的对应数据库,然后点击下一步,选中复制一个或多个表或视图的数据d.在选择源表和视图中,根据需要的选择导出的对象进行选中,可通过shift进行多选,注意一般会去掉后面的对应视图。此时如果该对应已经在目标库上创建完则会自动根据名称进行匹配,如果没有则会自动生成初始框架不带索引,外键。e.关键来了,全选你要导出的所有对象,再点编辑映射,根据实际需要进行选择,但是至少要选中启用标识** f.后面点击下一步开始数据导出导入进度查看,一般效率为4000行/秒 备注:在整体流程中架构同步相关的步骤可以是不做的,但是迁移过去的仅包含相关数据;同时如果先做了架构同步后再迁移数据库,数据迁移过程可能会因为架构约束导致失败,所以具体实现过程中请大家根据实际情况选择性操作。
-
1.首先通过客户端连接到你的实例,确认你当前RDS实例上的数据库的兼容级别跟你要还原到本地实例上的数据库版本:选中该数据库,右键属性,点击选项,确认兼容性级别。备注:备份文件仅能还原到同版本或高板的数据库实例上,例如:2014实例上备份下来的数据库就不能还原到2012实例,即便他的兼容性级别是一致的也不行!2.回到管控面,点击备份管理,根据你的要求选中你要下载的手动快照或自动快照,并点击下载,进入下载页面。3.进入下载页面后,根据提示步骤进行: a.下载华为云官网最新OBS Browser工具b.打开该工具,通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择添加桶,选择添加外部桶,输入下载页面上给出的桶名6).添加成功后点击进入该桶,并输入下载页面中的具体备份文件名,选中后进行下载到本地。4.根据下载到本地的文件,通过数据库还原脚本进行还原USE [master]RESTORE DATABASE [DBName] FROM DISK = N'D:\temp\01a97e94b83c421386b8161f2aff1cdc_36a22d4e01e34945b70e4999021b731din04_Db_fb114c9070ff403ba042273af301c2afbr04_20180305050650014_20180305050712106_2a0eb1b4d3b6405eb1e5ea069c0a58c7no04_.tar.gz' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5备注:该文件无需解压!直接使用,觉得备份文件名字长可以改短点(文中脚本仅供参考,以用户自身实际场景为主)。
-
目前华为云RDS SQL SERVER是可以完美适配SQL SERVER官方客户端SSMS的推荐大家选用。官网最新下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/sql-server-management-studio-changelog-ssms?view=sql-server-2017 同时,我们也发现大量的小伙伴在使用一些比较流行的三方客户端工具的时候出现了一些适配问题,在下面我将主要针对Navicat这款当前比较流行的三方数据库客户端工具,连接RDS SQL SERVER数据库服务进行操作上的一些问题进行详细说明:1.在打开NAVICAT客户端后点击连接弹出客户连接界面,在界面上需要输入一个连接名称,同时需要输入你的实例IP+端口号,rdsuser主账号加密码,点击连接测试成功后再确定,就可以连接到实例了。备注:注意IP和端口之间用英文逗号隔开',' 2.连接到实例后下一步就是开始创建数据库,右键实例选择新建数据库第一步,输入数据库名称,拥有者推荐选择rdsuser主账号,排序规则最好跟实例默认规则一致,查询实例默认排序规则脚本如下:SELECT SERVERPROPERTY('Collation')恢复模式必选FULL,不然该数据库不会纳入备份策略兼容性级别跟据需要选择100以上即可 第二步,文件组一般情况下无需修改第三步,文件中文件目录必须是D:\RDSDBDATA\DATA\,这个地址是RDS实例唯一允许建库地址,同时修改完mdf的数据文件后,还要注意同时修改下面的log文件名,修改日志的文件目录同数据文件目录,其余选项根据需要设置就好。 第四步,最后点SQL预览,脚本大致如下,点击确定数据库创建成功CREATE DATABASE [Test20180717]ON PRIMARY(NAME = N'Test20180717',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717.mdf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 1024KB)LOG ON(NAME = N'Test20180717_log',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717_log.ldf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%)COLLATE Chinese_PRC_CI_AS GO EXEC [Test20180717].dbo.sp_changedbowner N'rdsuser'GO 根据以上步骤建库建表成功后,下面的具体操作通过T-sql语句来进行执行问题就不大了。同时我们可以看到在缺乏管理员权限的支撑下,三方工具的友好性的确大打折扣,所以强烈推荐大家还是尽量使用官方客户端SSMS,是完全免费下载使用的。
-
mySpider.zip作者:王儒意修订:沈志鹏 官网地址:1、在华为云,北京一区购买一台SQLServer 实例,版本选择Microsoft SQL Server 2014 SP2 SE(推荐购买4U8G 单实例版本,空间大小40G SSD)2、在ECS上购买Windows Server 2012 R2 Standard 64bit English 规格同为4U8G。备注:1.ECS和RDS VPC&可用区必须一致2.ECS和RDS安全组上要注意设置出站,入站规则3.给ECS绑定一个公网IP,方便通过远程桌面登录进行操作ECS创建好之后,通过公网IP远程登录ECS Windows虚拟机,并将如下软件下载到本地并上传至ECS虚拟。最终需要的文件如下:可通过下方附件直接下载打包好的附件,也可根据本文提示在官网逐个下载。 a)安装python 2.7.15下载python27:下载地址:https://www.python.org/downloads/release/python-2715/下载文件:python-2.7.15.amd64(点击页面Windows x86-64 MSI installer进行下载) 安装方式:双击文件进行安装,安装路径可选 C:\Python27 安装成功后将 C:\Python27\Scripts 加入环境变量,环境变量添加方式:1.右击我的电脑选择属性2.在属性界面选择:Advanced system settings3.在弹出的框中选择Advanced--> Environment Variables4.选中下方system variables 中的Path,将C:\Python27\Scripts 加在前方,注意加分号 下载pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/下载文件:pywin32-220.win-amd64-py2.7.exe 下载pymmsql:a.下载freetds-v0.95.95-win-x86_64-vs2015:https://github.com/ramiro/freetds/releases文件名:freetds-v0.95.95-win-x86_64-vs2015.zipb.下载pymmsql:https://pypi.org/project/pymssql/2.1.3/#files包括2个文件:pymssql-2.1.3-cp27-cp27m-win_amd64.whlpymssql-2.1.3.tar.gzc.将以上文件统一放到C:\SoftWare\Python地址下d.解压freetds-v0.95.95-win-x86_64-vs2015,将其中的文件Copy到C:\SoftWare\Python目录下e.最终通过cmd命令进行安装: b)安装scrapy下载地址:https://pypi.org/project/Scrapy/#files下载文件:Scrapy-1.5.0.tar.gz安装方式:通过windows Command 命令行进入文件所在文件夹,通过pip instal scrapy命令行进行安装 c)安装SQL Server Management Studio,可到微软官网下载最新版本下载地址:注意要下载英文版的https://docs.microsoft.com/zh-tw/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017下载文件:SSMS-Setup-ENU安装方式:双击文件进行安装,安装完成后可通过该客户端连接数据库进行查看并对抓取结果进行确认3、将我们提供的mySpider.zip文件上传至虚拟机,并解压到C盘根目录下(C:\ workspace)生成如下项目,如下图 爬虫脚本已完成开发,仅需配置Settings中的数据库连接:1.文本打开C:\workspace\mySpider\mySpider\mySpider\settings.py文件2.拖到文件最后对数据连接信息进行修改,修改完成后注意保存# sqlserver 数据库连接信息MSSQL_HOST = '192.168.0.135,3600'MSSQL_DBNAME = 'user01'MSSQL_USER = 'rdsuser'MSSQL_PASSWD = '2wsx@WSX' 4、打开SQL Server Management Studio 创建爬虫数据库脚本:rdsuser登录实例,执行以下建库建表脚本:CREATE DATABASE [user01]GOUSE [user01]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[sina_news]( [parentTitle] [nvarchar](max) NULL, [parentUrls] [nvarchar](max) NULL, [subTitle] [nvarchar](max) NULL, [subUrls] [nvarchar](max) NULL, [subFilename] [nvarchar](max) NULL, [sonUrls] [nvarchar](max) NULL, [head] [nvarchar](max) NULL, [content] [ntext] NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GO 5、启动爬虫打开cmd,进入 C:\workspace\mySpider\mySpider,启动爬虫 6.爬虫运行之后,使用 studio 查询数据数数据确认抓取成功
-
云数据库SQL SERVER 服务介绍页入口:https://www.huaweicloud.com/product/mssql.html关系型数据库RDS 帮助文档入口:https://support.huaweicloud.com/rds/index.html世界杯结束了~但是小云妹我来了,这次给大家介绍数据库大家庭里的另外一个重量级人物——云数据库SQL SERVER人美话不多,我们直接看图https://activity.huaweicloud.com/dbmove/index.html新用户1元30天超长体验活动时间:2018年5月1日-2018年12月30日
-
场景排查1. ECS能否ping通RDS。如果ping不通,可以查看ECS和RDS是否处于同一个VPC内,是否使用同一个安全组。2. 检查连接IP和端口号是否正确。注意IP和端口号之间使用“逗号”隔开。3. 检查RDS服务的运行状态是否异常。4.查看用户名密码是否正确,尝试重置密码。5. 尝试重启RDS实例,看看是否改善。 解决方案步骤 1 登录管理控制台,选择区域和项目,选择“数据库 > 关系型数据库”。进入关系型数据库“实例管理”页面,单击目标实例名称,进入“基本信息”页面和“备份恢复”页面确定连接信息和备份信息。步骤 2 在实例“基本信息”页面查看管理员账户名。步骤 3 下载并在ECS上安装SSMS客户端。步骤 4 从ECS连接到RDS。----结束18782
-
本帖最后由 艾信运通 于 2018-6-13 17:43 编辑2018年6月11日,北京艾信运通技术有限公司公司入驻华为云市场,在华为云市场发布了财务舞弊侦测及资产风险定价产品,能够提供识别企业财务报表,计算财务指标并从审计的角度分析企业财务数据的合理性,从而评估企业财务数据的真实性以及实时计算资产的价值的功能,帮助企业和用户快速便捷解决甄别企业财务数据的真实性以及实时估计各类押品价值问题。 你了解过吗???有一款能快速便捷甄别企业财务数据真实性,实时估计各类押品价值问题的产品。 这究竟是一款什么样的产品,为何敢把一件数据量大,勾稽关系复杂,工作量繁重的工作如此轻描淡写解决,若你肯花上几分钟,也许下次你就不会再需要投入大量人力、物力、财力了。你需要了解的事 企业在进行贷款、发债、寻求投资的时候,往往出于自身利益的考虑,会通过财务造假来粉饰企业的经营情况、掩盖风险;随着银监会监管的加强,银行等金融机构需要对存量押品价值进行实时监控,受人工评估成本所限,需要借助外部智能评估的参与。 北京艾信运通技术有限公司发布的财务舞弊侦测系统可识别企业财务报表,计算财务指标并从审计的角度分析企业财务数据的合理性,从而评估企业财务数据的真实性,同时对企业的经营状况和财务健康进行分析评估,从而让用户全方位的了解企业真实的财务情况;资产风险定价系统以全国押品交易数据和行业数据为基础,结合不同押品的评估理论模型,统计和抽样理论方法,通过云平台系统直接几秒钟内估计出各类押品的价值,给出押品的交易价值及潜在风险,并形成标准的资产评估报告。我们的产品能做到的事 财务舞弊侦测系统采用对比分析方法,将企业数据与源至全国的企业纳税数据进行对比,返回财报可信度指标和财务能力指标,形成各式图表和文字性的解释语句,详细阐述分析过程,生成可下载的财务风险评估报告。 17264 资产风险定价系统可实现如下功能:1)设押前试算。只需要输入待评估对象的相关参数,就可得到其评估价值,自动生成评估报告并下载。2)登记入库。用户可在设押后对押品登记情况及押品属性信息入库,按监控周期自动评估并形成报告,实现动态监控功能。3)批量评估。在押品列表中设置查询条件,选择某一时间、某一类型、某一城市的押品进行批量评估。4)自动评估。通过设置监控周期,可实现自动评估。5)变现能力评估。每监管周期强制要求客户经理完成押品监管现场调查记录、并进行变现能力评估(定级)。6)动态评估。设置预警红线,经过一个监控周期,就会监测抵押率的变动,动态监控价值变动。 资产风险定价系统采用1)独特的押品数据库。模式:智能抓取+专人收集。类型:不同的方法对应不同的数据库。2)独特的选样技术。针对房产、土地等类型,艾信采取对每个满足筛选条件的样本进行编码,每个编码都包含了案例相关因素修正时的差异指数识别信息。3)客观性强。系统对动态的大数据进行统计分析,根据实际市场数据体现的特征因素影响幅度进行评估因素修正使得押品评估更具有客观性、时效性,更能把握市场脉搏。4)时效性强。市场成交数据动态更新,价值趋势指数同步更新。实时监测动态数据的更新并整理收录,部分数据根据一定时间段数据的整理分析后形成新的数据。5)智能选择评估方法。由系统自动(或半自动)完成择优选择评估方法、合理确定评估参数的取得途径、对比分析并选择最新最匹配的信息参与评估计算过程,得到最合理的评估结果。 可以解决的事 财务舞弊侦测系统可应用于所有需要评估企业财务状况的领域,主要包括对公信贷业务、债券业务、投资等领域。 资产风险定价系统可应用于所有需要评估单项资产价值的领域,主要包括对公抵押贷款业务、投资等领域。
-
本帖最后由 guangfu007 于 2018-4-27 17:24 编辑上次给分享了防止SQL注入的常见方式,今天展开了解下为什么不能使用动态拼接,以及代替方案。 先说下替代方案: 1.使用参数化查询 2.对不可信额数据进行校验 参数化查询是一种非常简单而且有效的防止SQL注入的方式,推荐优先使用。除此之外,使用参数化查询可以提供数据库的访问性能,使用参数化查询,数据库可为其缓存一个查询计划,后续重复执行相同的查询语句时直接执行而不需要再次编译。 下面用一段java代码示例来说明 错误示例(Java代码动态构建SQL): Statement stmt = null;ResultSet rs = null;try{String userName = ctx.getAuthenticatedUserName();//this is a constant String sqlString = "SELECT* FROM t_items WHERE user_name=´" + userName + "´AND item_name=´" + request.getParameter("itemName") + "´"; stmt = connection.createStatement(); rs =stmt.executeQuery(sqlString);}catch (SQLException se){ // ... loggingand error handling}分析:以上示例代码,只有当参数不包含单引号,查询语句才会符合我们的预期要求。做个假设:如果userName为:guangfu ,itemName为:name´ OR ´a´ = ´a 那么sql语句变成:SELECT * FROM t_items WHERE user_name= ´guangfu´ AND item_name = ´name´ OR´a´=´a´;由于OR条件的存在,这个sql语句等价于SELECT * FROM t_items 这样攻击者就可以成功获取到i_tems的所有信息,他可以查看所有用户的信息,造成了信息泄露。下面使用参数化查询正确示例(使用PreparedStatement进行参数化查询):PreparedStatement stmt = null;ResultSet rs = null;try{ String userName = ctx.getAuthenticatedUserName();//this is a constant String itemName = request.getParameter("itemName"); // ...String sqlString = "SELECT * FROM t_items WHERE user_name=? AND item_name=?"; stmt =connection.prepareStatement(sqlString); stmt.setString(1, userName); stmt.setString(2, itemName); rs = stmt.executeQuery(); // ... result set handling}catch (SQLException se){ // ... loggingand error handling }参数化查询在SQL语句中使用了占位符?,告诉程序运行时需要的参数值,SQL语句的逻辑被预先定义了,数据库就会默认把占位符的内容翻译为参数值。假设参数和上面错误示例一样,userName为:guangfu ,itemName为:name´ OR ´a´ = ´a 那么,此时数据会查询出item_name匹配为:name´ OR ´a´ = ´a 的字符串,user_name匹配为:guangfu的字符串,返回结果是我们预期的结果。下面再举例存储过程和hibernate、mybatis框架的示例。和上面类似的。错误示例(在存储过程中动态构建SQL):SQL Server存储过程:CREATE PROCEDUREsp_queryItem @userName varchar(50), @itemName varchar(50)AS BEGIN DECLARE@sql nvarchar(500); SET @sql= ´SELECT * FROM t_items WHERE user_name= ´´´ + @userName + ´´´ AND item_name = ´´´ + @itemName + ´´´´; EXEC(@sql); END GO 这也是会存在SQL注入的,正确示例如下:SQL Server存储过程:CREATE PROCEDUREsp_queryItem @userName varchar(50), @itemName varchar(50)AS BEGIN SELECT* FROM t_items WHEREuser_name = @userName ANDitem_name = @itemName; END GO存储过程使用参数化查询,而不包含不安全的动态SQL构建。数据库编译此存储过程时,会生成一个SELECT查询的执行计划,只允许原始的SQL语义被执行,任何参数值,即使是被注入的SQL语句也不会被执行。 错误示例(Hibernate: 动态构建SQL/HQL):HQL查询:String userName = ctx.getAuthenticatedUserName(); //this is aconstantString itemName =request.getParameter("itemName");Query hqlQuery =session.createQuery("from Item as item whereitem.userName = ´" + userName + "´ and item.itemName = ´"+ itemName + "´");List hrs =(List) hqlQuery.list(); 正确示例(Hibernate: 动态构建SQL/HQL):HQL中基于名称的参数化查询:String userName = ctx.getAuthenticatedUserName(); //this is aconstantString itemName =request.getParameter("itemName");Query hqlQuery =session.createQuery("fromItem as item where item.userName = :userName and item.itemName = :itemName");hqlQuery.setString("userName ", userName);hqlQuery.setString("itemName", itemName); List rs= (List) hqlQuery.list(); 错误示例(mybatis SQL映射):mybatis允许使用$符号指示使用某个参数来直接拼接SQL语句,这种做法是有SQL注入漏洞的:SELECT * FROM t_item WHERE owner =#{userName} AND itemName = ´${itemName}´mybatis将会为以上SQL映射执行类似下面的代码:String sqlString = "SELECT * FROM t_itemWHERE user_name=? AND itemName=´" + myClassObj.getItemName() + "´";PreparedStatement stmt = connection.prepareStatement(sqlString);stmt.setString(1, myClassObj.getUserName()); ResultSet rs = stmt.executeQuery(); 正确示例(mybatis SQL映射):mybatis SQL映射允许在SQL语句中通过#字符指定动态参数,例如:SELECT * FROM t_item WHERE owner =#{userName} AND itemName = #{itemName}#符号括起来的userName和itemName两个参数指示mybatis在创建参数化查询时将它们替换成占位符:String sqlString = "SELECT * FROM t_itemWHERE user_name=? AND itemName=?";PreparedStatement stmt = connection.prepareStatement(sqlString);stmt.setString(1, myClassObj.getUserName());stmt.setString(2, myClassObj.getItemName()); ResultSet rs = stmt.executeQuery(); 对数据的校验大家可根据自己业务需求来制定规则。虽然参数化查询是防止SQL注入最便捷有效的一种方式,但不是SQL语句中任何部分在执行前都能够被占位符所替代,对于不能被占位符替代的,我们可以使用转义。每种DBMS都有其特定的转义机制,通过这种机制来告诉数据库此输入应该被当作数据,而不应该是代码逻辑。 附上之前的帖子[MySQL] 防止sql注入的常见方式,避免入坑https://forum.huaweicloud.com/thread-7923-1-1.html
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签