• [其他] 联邦学习的特点
    如果从数据安全来考虑,联邦学习非常合适,数据安全非常可控。比如:联邦视觉(目标检测)产品的流程图如图:本案例的联邦网络中的客户参与方共有三个:分别是公司A、B、C。每一个客户方部署联邦学习框架后,其主要工作包括:对本地数据进行预处理;发起联邦学习训练任务;参与联邦学习任务;部署联邦学习模型在本地进行预测和推断。服务端主要工作包括:实时监控客户端参与方的连接情况;对上传的客户端模型进行聚合;挑选客户端参与客户端本地训练;上传全局模型。经过联邦学习更新后的全局模型,有两个用途:第一, 可以分发到当前联邦网络的客户端参与方(即图中的公司A、B、C),进行本地部署预测,使得联邦学习的参与方受益;第二, 如果新的全局模型效果能达到SOTA 水平,在经过参与方的协商同意后,还可以将新的联邦全局模型以开源或者商业售卖的形式,提供给其他厂商进行部署。看上去还不错,参与方的数据都不出本地,各自贡献本地算力,大家协作共同努力,全局模型大家共享~
  • [问题求助] 华为专属加密服务可以支持多大的数据量加密传输?它是怎么加密传输的呢?流程是什么?
    华为专属加密服务可以支持多大的数据量加密传输?它是怎么加密传输的呢?流程是什么?
  • [数据库安全] 针对于数据库的安全产品,除了DBSS数据库安全审计外,还有其它的吗?
    早先有一个DBSS数据库安全防护的产品,看到最新动态里,显示已经下线了;请问还有其它类似的服务,能对数据库的安全做保护吗?比如要实现数据库某些敏感数据自动发现,数据库敏感字段脱敏、加密等功能
  • [实践系列] GaussDB(DWS)数据库安全方案
    本文从数据库客户端接入、数据库通信、数据访问、数据加密脱密、数据导出安全介绍DWS数据库安全方案
  • [数据安全] 数据安全防护,密码口令建议
    弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:(1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。(2)口令长度不小于8个字符。(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。(4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。(6)口令不应该为用数字或符号代替某些字母的单词。(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
  • [技术干货] 国外如何应对物联网数据安全挑战?
    物联网使设备能够通过传感器连接到互联网,由此,我们从大数据时代进入无限数据时代。尽管物联网为我们的家庭和生活带来了无尽的便利和效率,但由于物联网设备会直接收集敏感信息,包括财务账号、健康信息、精确的地理位置等,引发了人们对这些设备的安全性以及收集个人数据用途的担忧。针对无限数据时代的新特征与新问题,需要在立法层面加以重视。这方面,国外有许多相关经验可以借鉴参考。国外现有相关立法情况1欧盟欧盟于 2016 年 4 月 27 日正式通过《一般数据保护条例》( 以下简称《条例》),明确了数据控制者和处理者新的义务,以保护欧盟公民的个人数据,该《条例》于 2018 年 5 月 25 日生效。根据《条例》,从公共领域或从数据泄露中检索到的所有个人可识别信息,都被视为个人数据。因此,物联网设备收集和存储的信息显然属于《条例》的管辖范围。《条例》将数据持有者定义为数据控制者或数据处理者。《条例》既适用于数据控制者,也适用于数据处理者。数据控制者是指决定如何处理和为什么处理个人数据的人、组织或企业,而数据处理者是指处理个人数据的人或实体。《条例》提供了一套自上而下的、精简的法规,以确保欧盟内部遵守这套法规。根据《条例》,数据控制者是决定个人数据处理目的和方法的实体。从本质上讲,任何收集欧盟公民数据的人都将被视为控制者,受《条例》的管辖。这包括在欧盟从事数据处理的物联网用户和物联网数据控制者。资料处理者是代表控权人处理个人资料的自然人或法人、公共机构、机构或其他团体。一般来说,《条例》定义的数据处理包括收集、使用、存储和销毁个人数据。其中,将“处理”定义为对个人资料的任何操作,不论是否采用收集、记录、组织等自动化方法。如果消费者是个人资料遭泄露的受害者,资料管制员必须立即通知监管当局。《条例》允许消费者要求从公司手中删除他们的数据,要求公司在消费者信息被侵犯时通知消费者,并明确规定了不遵守所有条款的后果。《条例》允许消费者清理他们在浏览互联网时留下的电子痕迹。《条例》要求,如果涉及个人数据泄露,如 DDoS和勒索软件网络攻击,必须报告数据泄露。处理个人资料的公司必须能够识别和处理违反《条例》规定的情况,此外还必须建立一套强制性的通知制度,处理个人数据需要获得个人的同意,以防个人资料被侵犯。2020年11月23日,浙江乌镇,2020年“互联网之光”博览会的某展台内,工作人员正在设定一款移动消毒机器人的程序,这款机器人通过5G网络实现各类交互功能。图/本刊记者 李晗 摄根据《条例》,沉默或不行动并不构成有效的同意;资料当事人必须通过同意选项,认可资料处理。此外,《条例》规定 13 岁以下的儿童不能表示同意,13 至15 岁的儿童要服从欧盟成员国的特殊法律。因此,为儿童创造物联网设备的物联网公司,在同意方面有额外的强制性要求。根据《条例》的数据最小化条款,一家公司只被允许收集和处理该公司特别需要的数据,并在一定时间内适当达成其预期目的。例如,如果公司提供服务所需要的只是姓名和电子邮件地址,该公司不应收集额外的个人信息。因为就物联网公司而言,由于其互联性,公司至少能收集到比个人用户最初预期更多的信息。在数据可携性权利方面,《条例》允许个人在技术可行的情况下,有权将个人数据直接从一个控制人传送到另一个控制人。例如,用户可以将数据从一个数据服务提供商传输到另一个数据服务提供商。2美国美国在数据安全保护的法律层面,采取了特定行业法规监管方式。目前,加州率先进行了严格的网络安全立法,部分原因是许多大型互联网公司的总部都设在该州。例如,最近在加州和马萨诸塞州通过的《加州消费者隐私法》对数据泄露通知法进行了修正。内布拉斯加州不要求网站运营商发布其隐私政策,但禁止在任何隐私政策中发表虚假或误导性的声明。其他州则完全没有保护措施。2015 年 4 月,美国众议院通过了一项决议,要求美国制定一项鼓励物联网发展的国家战略。然而,该决议没有涉及物联网监管方面的内容。一些州已经开始通过有关物联网数据安全的立法,但每个州的法律不尽相同,不能涵盖所有的数据安全问题。目前,《2015 年网络安全法案》是美国主要联邦法规之一,这部法案规范了预防、检测、分析和减轻网络安全威胁的授权。但对于如何在发生相关风险时对消费者进行赔偿,或要求公司承担责任等情况,法案没有明确规定。到目前为止,美国侧重于制定连接设备和相关计算网络的安全标准。美国联邦贸易委员会已经发布了连接设备和系统的详细安全指南,美国国防部也为承包商发布了安全标准。然而,美国并没有推动立法来管理互联网连接商品和服务。在法律法规之外,美国政府等机构也出台了一些指导方针,以期规范企业行为。美国联邦贸易委员会已经为企业提供了一些指导方针,帮助它们开发新的移动应用程序、设备和其他智能技术。在立法建议方面,美国联邦贸易委员会认为,不应当制定物联网数据安全保护方面的专门立法,而建议考虑制定具有广泛基础的、灵活的和技术中立的数据安全保护立法。美国联邦贸易委员会的建议与措施尽管存在局限性,但却有助于在鼓励技术创新和保护消费者数据之间保持平衡。比如,其对数据最小化概念的强调。美国联邦贸易委员会提供了企业进行数据最小化的四种方式:根本不收集数据;只收集产品运行所需的数据;收集敏感性较低的数据;非识别消费者的数据。非识别指的是物联网公司确保它们从消费者那里收集的数据不会被重新识别,这个过程包括删除某些类型的识别信息,如消费者的出生日期或邮政编码等与个人隐私密切相关的信息。数据最小化意味着公司应该限制他们收集和保留的数据,并在不需要时进行处理。除了建议采取数据安全立法以外,美国联邦贸易委员会还提出,国会应该通过一般的隐私立法,为公司提供指导方针,以帮助保护消费者的数据隐私。这些建议旨在推动企业管理消费者数据以及消费者使用其数据朝着更加透明的方向迈进。尽管物联网涉及公民日常生活中大量的私人数据,但美国目前还没有形成良好的安全和隐私保护的法律框架,可见,其采取的是监管谦逊做法。监管谦逊是指,考虑到如果监管过早,新生的物联网市场的创新可能会受到阻碍,在彻底了解可能受监管影响的实体或个人,并充分了解当前的法规和监管是否充分之前,应当推迟或延缓立法。目前,美国还没有标准或通信协议来管理不同制造商的物联网设备,大多数监管机构对此采取了放手的态度。在监管方面,美国联邦贸易委员会依据《联邦贸易委员会法案》第五章规定,惩罚那些没有采取充分措施保护消费者数据的公司。如果美国联邦贸易委员会认为某家公司违反了第五章规定,未能保护消费者的数据,它就会提起诉讼,通常会以和解和同意法令的形式解决此类纷争。同意法令通常要求被告建立并执行一项改善其资料隐私和系统安全措施的系统,还要定期接受独立机构的外部审计。被告如果在此期间违反了同意法令,必须向美国联邦贸易委员会支付相应罚款。美国联邦贸易委员会的方法是确保公司不滥用消费者数据隐私的有力举措,但还需要改进,使其成为更具实质性和有效性的执行机制。《联邦贸易委员会法案》授予美国联邦贸易委员会相应的权力,授权其采取相应的措施去确保物联网设备制造商不从事不公平或欺诈的行为。2020年11月23日,浙江乌镇,2020年“互联网之光”博览会上,观众正在参观以“数字安全”为主题的展台。图/本刊记者 李晗 摄监管方法与立法焦点物联网数据隐私监管的自由市场方法的支持者认为,虽然对保护消费者数据隐私的担忧是合理的,但这种担忧不应超过对保护“创新、企业精神、经济增长、价格竞争和消费者选择”的担忧。此外,自由市场方法的支持者认为,对快速发展的产业进行监管将限制创新,阻止具有重大社会和经济效益的技术发展。相反,他们设想利用自我监管、监管机构的压力和行业优秀做法来监管物联网。监管物联网的自由市场方法将使设备制造商受益,因为它避免了额外监管的成本。自由市场方法的支持者关注的是企业应该能够在创造新技术的过程中进行试验和创新。这些支持者认为,管制制度往往过于缓慢,无法适应技术迅速变化的现实,而且会增加企业的成本,从而阻碍创新。自由市场方法的支持者指出,监管机构往往认为消费者在购买产品服务时会做出非理性决策,但实际上缺乏对消费者的了解。政府监管机构在涉及新技术时应该表现出监管谦逊。监管谦逊意味着在彻底了解可能受监管影响的实体或个人,并决定当前的法规和监管是否充分之前,推迟提出任何新监管的建议。自由市场方法的支持者关注数据的“使用限制”,即企业在从消费者那里收集数据后如何使用这些数据。自由市场方法的支持者认为物联网公司应该向消费者提供关于他们数据使用政策的信息,限制他们收集数据的数量以及他们与第三方共享数据的数量,并试图保护数据免受入侵。然而,采用自由市场方法监管物联网存在一定缺陷,一方面,它往往忽视消费者因数据隐私监管措施不当遭受的损害;另一方面,它忽略了一个事实,即相关监管机构不了解物联网的运作方式,这为部分企业利用监管漏洞创造了条件。积极监管物联网数据隐私的方式,主要是要求企业采取措施保护消费者数据,包括限制公司利用消费者的数据 , 要求企业获得用户使用其数据的同意 , 并限制公司收集来自消费者的数据的类型。如美国电子隐私**(EPIC)主张政府应当采取积极的方法来保护消费者的数据隐私,这种方法需要颁布监管法规,禁止通过物联网公司侵犯数据隐私,保护消费者的数据不被滥用,但也可能产生相当大的负面效果。因为物联网还处于起步阶段,这种激进的方法可能会阻碍技术创新,最终对消费者的伤害大于对他们的帮助。该决议要求物联网公司让消费者知道它们收集数据的做法,并让消费者知道公司收集了哪些数据。此外,还要求物联网公司不要以消费者反对的方式使用消费者数据。这些规则被称为使用约束,要求企业只收集最低限度的数据。欧盟采取了类似的方法来提高数据透明度,允许消费者能够看到自动处理个人数据所涉及的逻辑。综合分析物联网环境下的个人数据隐私监管方法,在物联网数据隐私保护立法方面,有四大焦点问题值得关注。2020年11月23日,浙江乌镇,2020年“互联网之光”博览会上的中国电信展台内,5G智能缝纫机吸引了众多观众的目光。图/本刊记者 李晗 摄1数据最小化与去识别化数据最小化原则是指企业应该限制他们收集和保留的数据,并在不需要数据时及时处理。一方面,对企业收集和使用数据进行限制,有利于保护消费者的隐私;另一方面,数据最小化监管有抑制创新的风险,因为企业需要利用消费者的数据以确保其设备是根据消费者的需求而量身定制的。应当确立数据最小化原则,这不仅有助于避免消费者遭受数据泄露的风险,也有助于解决企业超出消费者合理预期使用数据的问题。数据最小化原则要求企业“应当根据自身的数据实践和业务需求”,制定“对消费者数据收集进行合理限制”的相关政策,并评估较少收集消费者数据是否可以达到企业的既定目标,如果不能达到目标,应当在征得消费者明确同意的情况下对数据进行披露。“去身份识别”是一种防止个人标识符与信息相关联的过程。这个过程允许编译一些数据位,同时去除与消费者身份关联的个人标识符。去识别化的方法包括:采取合理的措施消除身份数据;收集数据的企业公开承诺不重新识别数据;与第三方订立可强制执行的合同,要求第三方承诺不会对获取的数据重新进行识别。2通知与选择“通知与选择”是指物联网公司通知消费者,他们正在收集数据,并允许消费者选择是否同意。例如,物联网公司在收集数据时通知消费者,让消费者在购买产品时自行选择是否允许公司收集他们的数据,并为消费者提供隐私门户来管理他们的隐私。物联网公司在收集数据时不仅告知消费者哪些数据正在被收集,而且也让消费者自主选择如何收集和分享数据。在应用于物联网设备时,传统的“通知与选择”很可能是无效的。正如学者 Daniel Solove 指出 , “通知与选择”有两个问题,首先由于物联网公司提供的通知存在一定的模糊性,消费者对其被收集数据的种类和范围并不完全知晓;其次 , 当消费者必须做出决定是否同意公司收集他们的数据 , 他们倾向于同意对其数据进行收集。因为,大多数消费者不会阅读隐私声明,而且很少有消费者选择不让公司收集和使用他们的数据。使用“通知与选择”来保护消费者,那些简化“通知与选择”的建议,最终将会削弱这一原则所发挥的作用。尽管对使用“通知与选择”存在一些争议,还是应当在允许技术创新蓬勃发展和保护消费者数据之间找到一个中间地带。物联网公司在进行数据收集时应该向消费者公开,并给他们选择的机会。“通知与选择”包括多种方式,如:发布教程对消费者进行隐私设置提供指导;为消费者提供 QR 码,当消费者扫描时,自动链接到相关网站界面;在设置选项中设置是否允许收集数据选项等。3使用约束数据提供了对雇主、保险公司或其他第三方有价值的信息,而物联网设备制造商正越来越多地通过将数据卖给第三方来利用这一价值。因此,消费者在购买相关设备时常常会牺牲自己的隐私。在物联网领域,使用约束可能以两种方式发挥作用:第一,制造商在任何时候想要公开用户数据时都需要获得消费者的明确同意;第二,用户可以手动更改隐私设置,从不允许披露信息改为允许披露。立法者还可以选择一种更严格的“选择加入”系统,即物联网公司在获准使用任何数据之前,必须得到消费者的明确同意以及法律的明确授权。此外,通过物联网收集的数据不应该被保险公司用来设置健康、人寿、汽车或其他方面的保费。这些数据也不应该用于就业决策、信贷决策、住房决策或其他公共生活领域。物联网公司应该向消费者保证,他们的数据不会被用于不正当目的。4第三方原则第三方原则的适用前提是,人们在执行日常任务的过程中会向第三方泄露大量关于自己的信息,而特定的物联网设备会产生共享这些信息的需要,因此应当重新考虑第三方提供商的行为和做法。第三方提供商向用户做出通知,在通知中提及了第三方提供商将要把收集的信息用于营销目的,但用户通常并不了解使用条款。物联网用户可能会不自觉地、不情愿地提供每日动态数据,在这种背景下,第三方原则就显得非常必要。物联网开发者应当在第三方原则下与第三方提供商共享这些每日动态数据集,使这些数据不断地得到提炼和统计。随着物联网技术的不断快速发展,当私人信息不断通过物联网流动并被收集用于商业目的时,第三方原则必须根据合理隐私期望重新定义。如果物联网设备在没有明确使用条款的情况下出售并且收集用户信息,或者如果物联网用户不知道他们的信息将被用于营销,物联网用户如何能够自愿且知情地输出他们的信息?物联网成为我们日常生活不可分割的一部分,在这样的环境之下,需要重新考虑第三方原则的适用范围。
  • [技术干货] 物联网时代数据安全的保护是最大问题
    智能家居、车载终端等等新的技术使我们生活变得多姿多彩,IT技术的发展变革使得物物相连的互联网时代“飞奔而至”。随着大数据和云计算这些新兴技术的不断涌入,物联网技术正在以廉价、普及的姿态往普通消费者中走去。我想在不久的将来,物联网应用将会深入到我们生活的方方面面。    但是事情都具有两面性,就像硬币一样具有正反面之分,我们不能仅看到对我们有利的一面,还要看到它给我们带来危害的一面。物联网技术使我们的生活变得那么多姿多彩,方便快捷,但是其背后存在的信息安全问题也是我们不可忽视的问题,它远远比互联网时代严重得多。物联网在发展的过程中存在着安全隐患。因此,在如此严峻的数据安全问题面前,怎样防护其安全才是各个企业商家所面临的重点问题。    当然,说到这里就必须要讲讲物联网技术发展中所面临的安全隐患都是什么。只有找到了问题,才能针对问题来找到完美的解决方案。安全专家山丽网安表示,物联网的基础就是互联网的存在,如果没有互联网的连接的话,也都是空谈。因此可以看出物联网的安全威胁有两个方面,基础方面和自身方面。  基础方面  互联网作为基础技术来说,其本身存在的安全隐患就多如牛毛,随着科技的发展技术的提高,黑客攻击的趋势也日益明显,不法分子以通信网络、信息系统以及用户信息和财产为目标,利用黑客技术发起网络攻击牟取非法利益,逐步形成组织严密、分工明确的互联网地下产业。可见其在安全防护上的隐患。  自身方面  从自身角度出发,物联网自身的安全问题也是尤为突出的。作为新兴技术而言,其自身还是存在诸多漏洞,黑客利用其漏洞可以轻松盗取想要的内容信息数据。  物联网要想更好的发展,数据安全防护成为重中之重  物联网的数据安全问题在某些领域甚至已经超出了原有计算机信息系统的安全边界,成为一个广为关注的热点问题,其中个人用户的隐私安全问题使得广大用户尤为重视。无线网络的无防护特征,其脆弱性造成所传递的信息暴露在“有心人”的视线当中,使信息相当于“裸奔”一样在大庭广众之下传输。可见其安全隐患对其发展的影响有多深远。    众所周知,在这个大数据横行的时代,数据已成为各大企业部门所拥有的重要资产,它决定了企业部门的生存力竞争力。数据一旦发生丢失泄漏,对企业,对部门将造成不可估量的损失。所以,数据安全的防护越来越重要。    物联网安全防护的方案  国家应该颁布一套有效的保障措施,通过法律法规监管来保护用户的隐私安全,近期发改委就信息安全方面颁布了新的通知,规范了一些行为,为营造良好的法治网络打下基础。  当然,在安全防护方面不得不提的就是应用加密软件对其进行加密保护,防止“有心人”窃取企业机密数据,大大加强企业安全防护。对于保存在应用服务提供的企业、云存储平台中的海量信息而言,加密软件可以更有效地对其进行防护。      故名思议,加密软件就是利用加密技术、加密算法改变原始数据的真实内容,在未解密和未授权情况下任何人都无法非法访问、读取。山丽网安的防水墙系统就是诸多加密软件中的佼佼者。    防水墙系统采用了国际顶尖的多模透明加密技术,对称密钥与非对称密钥相结合的加密模式,专门针对于数据源头进行加密,使得企业在数据安全防护上可以放下心来。  当然仅仅是以上所述还是不够的,自身的安全防护意识提高也是必要的条件,只有从自身开始,重视数据安全的防护,然后再配合加密软件和法律法规的约束,才可以对数据进行全方位立体的防护。  
  • [问题求助] 打包后的BO怎么移除元数据保护
    将打包后的BO下载并安装到沙箱环境后,调用BO删除接口以删除该BO,提示"'Service'元数据被保护,不可删除"请问该如何移除掉元数据保护补充:目前已经可以删除该安装BO里的脚本与对象rest自定义接口无法删除,调用接口也显示3. 在编译设置里没有看到关于服务的保护设置,请问是要在打包好的包里面改吗期望达成目标:能正确删除BO及BO里的数据能删除指定rest自定义接口
  • [问题求助] 打包后的BO怎么移除元数据保护
    将打包后的BO下载并安装到另一个环境后,调用BO删除接口,提示"'Service'元数据被保护,不可删除"请问该如何移除掉元数据保护
  • [数据安全] 终于知道为啥网页不让我复制粘贴了!
    【摘要】 我们在项目中,通常为了保证数据安全性和保护用户个人信息,个别页面需要禁用右键、复制、粘贴以及输入框自动填充的功能。所以在此补充和总结几条我们开发中常用的操作方式。文章目录前言一、禁用鼠标右键1.1、分析说明1.2、操作原理1.3、实现效果1.4、实现代码1.5、补充:JS 中的 button 事件属性二、禁用复制粘贴2.1、分析说明2.2、实现代码三、禁用输入框自动填充功能3.1、分析说明3.2、实现效果3.3、实现代码总结前言我们在项目中,通常为了保证数据安全性和保护用户个人信息,个别页面需要禁用右键、复制、粘贴以及输入框自动填充的功能。所以在此补充和总结几条我们开发中常用的操作方式。一、禁用鼠标右键1.1、分析说明通过禁用右键选项卡的方式来禁用复制粘贴以及其他非法操作。1.2、操作原理我们通过 JS 中的 button 事件属性来实现鼠标右键的禁用。通过弹出提示框来代替右键选项卡。1.3、实现效果1.4、实现代码将下列 JS 代码导入需要禁用右键的页面的<script>标签对中即可:function click() {  if (event.button==2) {  alert('对不起,本页禁用右键!')  } } document.onmousedown=click;1.5、补充:JS 中的 button 事件属性button 事件属性返回一个整数,用于指示当事件被触发时哪个鼠标按键被点击。语法如下:event.button==0|1|2;参数描述0规定鼠标左键1规定鼠标中键2规定鼠标右键二、禁用复制粘贴2.1、分析说明通过禁用快捷键 Ctrl+C/V/X 来禁止用户在当前页面复制、粘贴(剪切)。2.2、实现代码页面整体禁用复制粘贴,在页面 body 标签中加入如下代码即可:<!-- 禁止全选、复制、粘贴 --><body onselectstart="return false" onpaste="return false" oncopy="return false" oncut="return false">参数说明:参数描述onselectstart=“return false”禁用选择,防止复制onpaste=“return false”禁用粘贴oncopy=“return false”禁用复制oncut=“return false”禁用剪切,防止复制三、禁用输入框自动填充功能3.1、分析说明如果我们不对输入框进行设置的话,之前用户输入的记录会在下一次输入的时候自动填充。你当然不希望你在某个小网站看的记录被另一个同学登录时用户名自动填充,让人家发现你的小秘密?那我们就通过禁用输入框自动填充,使得之前用户输入的记录不会在另一个用户输入时自动填充,起到保护用户个人信息隐私的作用。3.2、实现效果3.3、实现代码在输入框的属性中添加autocomplete="off"属性即可:<input name="username" type="text" placeholder="请输入您的账号" autocomplete="off" minlength="8" maxlength="20"> <input name="password" type="password" placeholder="请输入您的密码" autocomplete="off" minlength="8" maxlength="20">总结原生 JS 是充满魅力的,永远不要为了追求现成的框架而舍本逐末。在开发中为了保护用户隐私和信息安全,我们需要在各个方面都要在做到严谨,以给用户最佳的体验,无论是前端还是后端,都要充分把细节做到位,任何事的前提都是先做一个合格的程序员。技术驱动服务,服务带来盈利和收益。我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!本文分享自华为云社区《表单页面使用 JS 实现禁用右键和复制粘贴(剪切)功能原理以及操作说明》,原文作者:白鹿第一帅 。
  • [存储] 未雨绸缪,数据保护之NBU介质备份
    一、简介企业要想避开自然灾难和站点中断的影响,必须将数据副本远程备份至异地机器中。 这样当生产站点发生重大灾难事故时候,本地的生存存储与备份存储数据可能都会丢失,此时需要从异地备份存储上恢复数据,从而保证数据不丢失。Netbackup 是目前金融行业使用最广的备份软件之一(简称NBU),是Veritas(赛门铁克)主要产品 。华为GaussDB目前已支持NBU介质的备份与恢复,本文主要描述了华为GaussDB数据库和NetBackup对接进行备份、恢复的配置方法与性能调优方法。二、NBU部署方式当前GaussDB NBU备份方案支持两种部署架构,分别为侵入式部署于非侵入式部署。NBU侵入式部署当GaussDB所在集群支持NBU系列软件安装时,部署方式采用NBU侵入式部署,部署结构如下图:NBU侵入式部署方案可以借阅 【GaussDB对接NBU备份环境配置指南】具体使用方法如下:注意:--media-destination: 该参数为NBU policy名称--metadata-destination: 元数据目录(本地路径)--prior-backup-key: 该参数为增量备份依赖的备份集--backup-key: 该参数指定恢复备份集1、全量备份:python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination  /data1/roachbackup/metadata  --parallel-process 32、增量备份python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/roachbackup/metadata  --parallel-process 3 --prior-backup-key 20200912_0833243、全量/增量恢复python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination  /data1/roachbackup/metadata  --backup-key 20200912_0833244、单表备份python $GPHOME/script/GaussRoach.py -t backup --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 349905、单表恢复python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990  --backup-key 20190826_1516006、多表备份python $GPHOME/script/GaussRoach.py -t backup --master-port 9500 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/omm/table.list7、多表恢复python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 9500 --media-destination $GAUSSHOME/roachbackup/mediadata --media-type nbu_policy --metadata-destination  $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/apdba/table_list.txt --backup-key  20190511_183652 -8、数据库级备份python $GPHOME/script/GaussRoach.py -t backup --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU9、数据库级恢复python $GPHOME/script/GaussRoach.py -t restore --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU --backup-key key 20190511_193122NBU非侵入式部署当前NBU系列软件只支持x86机器,NBU非侵入式部署则支撑NBU系列软件无法在ARM、欧拉系统安装的场景。如下图所示,假如已有3节点GaussDB集群,Roach备份工具将本节点的集群数据通过TCP发送到远端NBU Media Server机器。每台NBU Media Server上面同时安装NBU Client,并部署Roach client组件,后者接收集群内Roach进程发来的备份数据,不落盘方式通过XBSA接口转发给本机的NBU Client,完成NBU备份。恢复流程也类似,只是数据流相反。Roach client插件安装:从DWS管控面的连接管理界面下载Roach client组件包到集群本地,然后拷贝出来。如下:useradd omm passwd omm   # 输入密码 su - omm cd /data/omm/ # 变更为本地安装目录, 将Roach client安装tar包拷贝至此目录下 mkdir roach_client tar -zxvf GaussDB-8.1.0-REDHAT-x86_64bit-RoachClient.tar.gz -C roach_client cd /data/omm/roach_client/bin/source roach_client_env./roach_client -p ip:8888 -H 0/0 -D -l roach_client.log  # ip为当前部署roach_client机 ps -ef | grep roach_client # 启动后检查roach_client是否启动成功注意:/roach_client -p ip:8888 -H 0/0 -D -l roach_client.log其中ip为当前部署roach_client机器, 8888为roach_client开放端口,用于沙箱内集群各节点和NBU Media Server之间TCP通信传输备份文件 ; -l 为指定日志路径备份方式:注意:--media-destination: 该参数为NBU policy名称--metadata-destination: 元数据目录(本地路径)--nbu-on-remote:该参数指定部署方式为NBU非侵入式部署--nbu-media-list: 该参数指定NBU Media Server的ip清单,按行输入ip地址--client-port: 该参数指定Roach client插件的对外开放通信端口--prior-backup-key: 该参数为增量备份依赖的备份集--backup-key: 该参数指定恢复备份集1、全量备份:python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination  /data1/roachbackup/metadata  --parallel-process 3 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 88882、增量备份python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/roachbackup/metadata  --parallel-process 3 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888 --prior-backup-key 20200912_0833243、全量/增量恢复python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination  /data1/roachbackup/metadata  --backup-key 20200912_083324 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 88884、单表备份python $GPHOME/script/GaussRoach.py -t backup --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990  --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 90005、单表恢复python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 25990 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/tablebackup/metadata --dbname testdb --tablename test --agent-port 34990  --backup-key 20190826_151600  --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 90006、多表备份python $GPHOME/script/GaussRoach.py -t backup --master-port 9500 --media-destination nbu_policy --media-type NBU --metadata-destination  $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/omm/table.list --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 90007、多表恢复python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 9500 --media-destination $GAUSSHOME/roachbackup/mediadata --media-type nbu_policy --metadata-destination  $GAUSSHOME/roachbackup/metadata --logical --agent-port 7000 --dbname testdb --table-list /home/apdba/table_list.txt --backup-key  20190511_183652 --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 90008、数据库级备份python $GPHOME/script/GaussRoach.py -t backup --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU  --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 90009、数据库级恢复python $GPHOME/script/GaussRoach.py -t restore --dbname testdb --agent-port 7000 --metadata-destination $GAUSSHOME/roachbackup/metadata --media-destination nbu_policy --master-port 9500 --media-type NBU --backup-key key 20190511_193122  --nbu-on-remote --nbu-media-list /home/liding/nbu/media.txt --client-port 9000三、NBU流程概述备份数据流NBU 一般涉及NBU Master Server、NBU Media Server、NBU client,属于一个three-trie结构。本章节主要介绍NBU进程工作原理,方便使用者、开发者了解NBU备份流程,排查问题。下图中为通过备份所涉及的数据流向基本备份过程:1、启动备份方式:当 nbpem 服务检测到某项作业到了启动时间时,将开始进行预定的备份操作。nbpem会检查到了启动时间的预定客户机备份的策略配置。如果管理员在 NetBackup 管理控制台中选择了手动备份选项,将开始进行即时手动备份。这会使 bprd 联系 nbpem,然后 nbpem 将处理管理员所选择的策略、客户机和日程表。当客户机上的用户通过该客户机上的用户界面(或者通过 bpbackup 或xbsa系列接口)启动备份或回复时,将开始进行用户控制的备份或回复操作。这将调用该客户机的 XBSA程序,该程序向主服务器上的请求后台驻留程序 bprd发送请求。当前Roach NBU介质备份采用这种启动方式。2、接收备份任务: 响应进程(bprd)接收到客户端的备份请求,bprd: request manager请求管理器:     bprd是Master Server的守护进程,bprd进程主要负责对客户机请求作出响应,并将并向nbjm发出 job请求,用于提交备份并获取job ID。3、将请求转发个策略执行管理器nbpmnbpem: policy execution manager策略执行管理器    策略执行管理器服务 (nbpem) 执行以下操作:    a. 通过nbproxy从 bpdbm 中获取策略列表, 查询到有效的备份policy的是否存在;    b、向 nbjm 提交当前已到预定启动时间的所有作业(按照schedule执行时间的策略)。4、为备份job分配资源a、nbjm(job manager作业管理器)接收到任务后,nbjm首先会与bpjobd通信,将此job添加至job列表中,此时在Activity Monitor中该job以queue状态可见。b、nbjm通过nbrb 请求资源,nbrb负责分配资源以响应来自 nbjm 的请求。并从 nbemm (企业介质管理器服务)获取物理资源,并管理逻辑资源,如多路复用组、每个客户机的最多作业数、每个策略的最多作业数。 当nbrb进程从nbemm获取到所需资源时,会返回通知nbjm资源已分配。b、当nbrm资源分配完成后,nbjm会调用 image database 创建临时快照文件,此时该job会在Activity Monitor中该job以active状态可见。5、开始备份a、当job处于active状态后,nbjm通过bpcompatd与NBU Media Server上的客户端服务(bpcd)进行连接,其中bpcompatd服务通过专用小交换机(PBX)和NetBackup旧式网络服务(vnetd)创建连接。b、bpcd进程是NBU Media Server上的守护进程,允许Master Server或NBU Client启动程序。bpcd接收到连接后会启动Netbackup 备份恢复管理器(bpbrm)。b、bpbrm进程服务通过PBX与vnetd与NBU client机器上的bpcd进程建立连接,启动NBU client机器上的bpbkar,其中bpbkar负责生成备份image,并将image数据发送至NBU Media Server上的bpdrm,对于每个备份或恢复job,都会在NBU Media Server上启动一个bpbrm实例用于传输image数据。bpdrm进程会启动磁带/磁盘管理进程bptm,对于磁盘介质,bptm直接与磁盘通信。对于磁带介质,bptm保留驱动器并向逻辑磁带接口守护程序(ltid)发出安装请求。 ltid服务调用机械手驱动器守护程序(txxd,其中xx根据所使用的机械手的类型而异)。 txxd守护程序将安装请求传达给机械手控制守护程序(txxcd),后者将安装介质。6、结束备份bpbkar服务通过bptm发送备份数据,以将其写入介质存储或磁盘存储。 备份完成后,将通知nbjm并将消息发送到bpjobd。此时job在“Activity Monitor”中显示为“done”。 nbjm服务还会将作业退出状态报告给nbpem,nbpem将重新计算作业的下一个到期时间。四、XBSA相关接口NBU软件提供的libxbsa64.so动态库(实现了标准的XBSA系列接口),将本地数据传送到NBU服务器,然后由NBU服务器负责落盘到磁带介质上。 GaussDB的专用备份工具Roach,负责调用libxbsa64.so库将本地数据库文件备份到远端NBU服务器。 本章节则主要针对开发者,介绍XBSA系列接口。备份相关接口备份过程中涉及的XBSA相关接口主要如下:BSAQueryApiVersion:该接口用于确定Netbackup XBSA接口的当前版本。BSAInit:该接口用于对XBSA应用程序进行身份验证,与NetBackup XBSA接口建立session会话,并为调用者的后续API调用建立环境。注意,BSAInit不支持嵌套创建session会话。BSABeginTxn:该接口用于创建一个事物,这里的事物和数据库事物概念相似,BSABeginTxn()调用向NetBackup XBSA接口指示作为原子单位执行的一个或多个操作的开始,即所有操作将成功或没有成功。可以将一个动作假定为为特定目的而进行的单个函数调用或一系列函数调用。例如,一个BSACreateObject()调用后跟多个BSASendData()调用并以BSAEndData()调用终止可以被视为单个操作。 在正常使用中,BSABeginTxn()调用总是与随后的BSAEndTxn()调用耦合。如果在事务期间调用BSATerminate(),则事务中止。注意,BSABeginTxn不支持嵌套创建事物。BSACreateObject:BSACreateObject调用在NetBackup中创建一个XBSA对象。 该调用将启动NetBackup XBSA接口与NetBackup服务器之间的通信。然后可以将XBSA对象数据传递到内存缓冲区中。BSACreateObject调用中的dataBlockPtr参数允许调用者获取有关NetBackup XBSA接口所需的缓冲区结构的信息。BSASendData:BSASendData()将字节数据流发送到缓冲区中的NetBackup XBSA接口。如果要发送的字节数据流很大,则可以多次调用BSASendData()。此调用只能在BSACreateObject()或另一个BSASendData()调用之后使用。BSAEndData:调用方在调用BSACreateObject之后调用零次或多次BSASendData,当前备份文件传输完毕后调用BSAEndData,用于通知Netbackup服务器当前文件传输结束BSAEndTxn:BSAEndTxn与BSABeginTxn耦合使用,以标识将被视为事务的API调用或一组API调用。。BSATerminate:BSATerminate调用终止与NetBackup XBSA接口的会话,该接口由BSAInit调用对应,释放当前session会话获取的所有资源。如果在事务内调用BSATerminate(),则事务中止。恢复相关接口恢复过程中涉及的XBSA相关接口主要如下:BSAQueryObject:BSAQueryObject调用从NetBackup XBSA界面启动有关NetBackup XBSA对象文件的信息请求。查询结果由查询描述符中指定的搜索条件确定。在BSA_ObjectDescriptor(由objectDescriptorPtr参数引用)中返回满足查询搜索条件的第一个XBSA对象的XBSA对象描述符。BSAGetData:BSAGetData从NetBackup XBSA接口请求XBSA对象文件数据。在BSAGetObject()调用之后或在其他BSAGetData调用之后使用此调用。五、问题定位使用Roach工具NBU备份发生故障时,可通过以下思路进行问题定位NBU管理控制界面activity monitor可显示相关的备份、恢复job。 job类型分为三类:蓝色站立人性:表示该次备份/恢复操作已成功执行完毕;绿色跑步人形:表示该次备份/恢复操作正在执行;红色x形:表示该次备份/恢复操作失败,可根据Status查询NBU官方文档获取错误相关原因;例如上图中失败job返回码为13,则可根据文档信息定位排查原因若NBU界面无失败job,则一般问题出现在了Roach侧,可根据Roach日志进行定位。六、参数调优Roach工具目前支持两种NBU部署结构,分别为NBU侵入式部署于NBU非侵入式部署,两种部署方式的参数调优分别如下:1、通用参数调优Maximum concurrent jobs此值指定了对应存储单元上最大作业数量,取值范围为1-256,例如准备将三个备份作业发送到存储单元,并将“最大并发作业数”设置为两个。前两个作业开始,而第三个作业等待。Maximum vault jobs:此属性指定在master server上允许活动的最大活跃job数量。如果达到了允许活动的job限制,则将后续的kob排队,并且它们状态在“活动监视器”中显示为“已排队”。此属性设置范围为1~200, 当备份过程并发job数大大超过200,则master server会出现瓶颈,造成任务排队耗时。此时应考虑部署多Master Server模式。设置NET_BUFFER_SZ :在应用Netbackup备份数据到带库时,有一个NET_BUFFER_SZ参数,决定media server与client之间数据传输的缓冲池大小,该参数值默认为32032 bytes,以文件形式保存于%Install_Path/netbackup/目录下。通常默认值都较小,如果希望修改该参数值,则直接修改%Install_Path/netbackup/NET_BUFFER_SZ即可,例如:host-192-168-241-40:/usr/openv/netbackup # echo 65536 > /usr/openv/netbackup/NET_BUFFER_SZhost-192-168-241-40:/usr/openv/netbackup # more /usr/openv/netbackup/NET_BUFFER_SZ65536设置一个足够大的NET_BUFFER_SZ某些情况下能够有效提高备份的速度,推荐在server/client端都设置该参数。2、NBU侵入式部署调优Maximum jobs per client:此值设定每个NBU client发送的并行处理任务数,通常Roach与并行参数相对性,一般设置为DN数+CN数为最佳。3、NBU非侵入式部署调优Maximum jobs per client:此值设定每个NBU client发送的并行处理任务数,通常Roach与并行参数相对性,一般设置为(DN数+CN数)*(Roach client 服务的Roach agent)个数为最佳。4、超时设置超时属性适用于选定的Master server、Media Server以及NBU clientClient connect timeout:此选项指定服务器连接客户端时等待的秒数。默认值为300s。一般Roach备份业务中,建议此值设置为3600s或者更高。此选项适用于NBU Master Server、NBU Media Server、NBU Client。Client read timeout:此选项指定用于客户端读取超时的秒数。此选项适用于NBU Master Server、NBU Media Server。默认值为300s,如果服务器在客户端在此超时时间内没有从客户端得到响应,则备份/恢复任务失败,报错误码13。特别是针对于NBU Job复用场景,文件间隔传输时间超过此值,则备份/恢复任务失败。建议此值设置为3600s或者更高。Media server connect timeout此选项用于指定Master Server连接Media Server的等待超时描述,默认值为300s。建议此值设置为3600s。此选项适用于NBU Master Server、NBU Media Server。原文链接:https://bbs.huaweicloud.com/blogs/223973【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [SQL] GaussDB(DWS)数据库安全系列之通信安全
    【摘要】 网络是一个开放的环境,仅仅依靠用户名和密码难以应对复杂的网络环境,针对可能存在的身份伪造的欺骗行为,以及监听通信内容的窃听行为,为了确保通信双方身份的真实性和通信内容的私密性,防止非法用户对GaussDB(DWS)系统、其他用户造成不利影响,GaussDB(DWS)建立了一套完整而严密的防护机制——连接认证机制,可以有效防止非法用户入侵。1.   简介网络是一个开放的环境,仅仅依靠用户名和密码难以应对复杂的网络环境,针对可能存在的身份伪造的欺骗行为,以及监听通信内容的窃听行为,如何保证通信双方身份的真实性和通信内容的私密性,防止非法用户对GaussDB(DWS)系统、其他用户造成不利影响,就需要一套完整而严密的防护机制。连接认证机制就是GaussDB(DWS)数据安全的一套有效防护机制,连接认证机制可以防止非法用户入侵GaussDB(DWS)系统内部。GaussDB(DWS)是基于客户端/服务器(C/S)架构的系统,通信过程是基于TPC/IP协议,为了确保用户访问的可信,建立了连接认证机制:通过安全套接字层(SSL)实现通信双方的证书校验和秘钥协商从而保护网络连接,通过服务端的认证模块确保用户名和密码合法。关于SSL,SSL(及其继任者TLS)是在应用程序级实现的,位于应用层协议(HTTP、FTP)和传输层协议(TCP)之间。如果正确地配置了SSL,则第三方观察者最多只能获得连接参数、传输频率和大概数据量,但是无法读取或更改这些信息。基于SSL的证书校验可以确保通信双方(客户端和服务端)身份的真实性、秘钥协商可以确保数据的完整性和私密性。SSL/TLS在Internet协议栈中的位置如图所示:关于认证模块,在建立的TCP/IP通道(SSL)的基础上,根据服务器配置文件pg_hba.conf中限定的合法用户名、数据库名、IP地址以及认证方式等信息,GaussDB(DWS)认证模块对用户名和密码进行校验,确保合法用户能正常连接到GaussDB(DWS)。2.   证书校验&&秘钥协商证书校验和秘钥协商在SSL的握手阶段实现,握手协议如下:1.1         准备证书在华为云CA认证中心申请到服务器、客户端的证书和密钥。(如:服务器的私钥为server.key,证书为server.crt,客户端的私钥为client.key,证书为client.crt,CA根证书名称为cacert.pem。)为了安全性,私钥通常采用了密码保护,在此可以通过gs_guc encrypt工具生成私钥的两个密码保护文件(*.key.rand、*.key.cipher),命令如下:gs_guc encrypt [-M keymode] -K password -D DATADIR说明:•        -M是加密类型,服务端选择server,客户端选择client。默认值为server。•        -K是用户私钥的密码,密码需要满足要求:长度(8≤len≤16)、复杂度(需至少包含小写字母、大写字母、数字、特殊字符中的三种)•        -D生成的密码保护文件的存放地址1.2         服务器参数配置通过调用工具gs_guc实现服务器配置文件postgresql.conf有关参数设置,命令如下:gs_guc set -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "ssl=on"说明:•        -Z coordinator表示实例类型为coordinator;•        -D 数据目录•        -c 指定设置postgresql.conf文件服务器需设置SSL相关参数如下:参数描述取值范围ssl表示是否启动SSL功能·       on:开启SSL功能·       off:关闭SSL功能默认值:onrequire_ssl服务器是否强制要求SSL连接,只有当参数ssl为on时才有效·       on:强制要求SSL连接·       off:不强制要求SSL连接默认值:offssl_cert_file指定服务器证书文件请以实际证书名为准。必须使用相对路径(相对于数据目录)默认值:server.crtssl_key_file指定服务器私钥文件请以实际的私钥名称为准。必须使用相对路径(相对于数据目录)默认值:server.keyssl_ca_file服务器侧CA根证书,需验证客户端证书合法性时才配置请以实际CA根证书名称为准默认值:空,表示不对客户端的合法性进行校验ssl_crl_file证书吊销列表请以实际证书吊销列表名称为准默认值:空,表示没有吊销列表ssl_ciphersSSL通讯使用的加密算法,目前已升级至TLS1.3TLS1_3_RFC_AES_128_GCM_SHA256TLS1_3_RFC_AES_256_GCM_SHA384 TLS1_3_RFC_CHACHA20_POLY1305_SHA256TLS1_3_RFC_AES_128_CCM_SHA256TLS1_3_RFC_AES_128_CCM_8_SHA256默认值:ALL,表示允许对端使用以上所有加密算法,在满足条件的算法中按照安全强度最高的匹配1.3         客户端参数配置客户端设置SSL连接参数,按照模式分为:单向认证和双向认证单向认证,仅客户端验证服务器证书的合法性,设置参数:PGSSLMODE、PGSSLROOTCERT;双向认证,客户端验证服务器证书的合法性,同时客户端向服务器发送证书,由服务器验证客户端证书的合法性,设置参数:PGSSLCERT、PGSSLKEY、PGSSLMODE、PGSSLROOTCERT; 客户端需设置SSL相关参数如下:环境变量描述取值范围PGSSLCERT指定客户端证书文件绝对路径,如:export PGSSLCERT='/home/omm/client.crt'PGSSLKEY指定客户端私钥文件必须包含文件的绝对路径,如:export PGSSLKEY='/home/omm/client.key'PGSSLMODE设置是否和服务器进行SSL连接协商,以及指定SSL连接的优先级取值及含义:·     disable:只尝试非SSL连接·     allow:首先尝试非SSL连接,如果连接失败,再尝试SSL连接·     prefer:首先尝试SSL连接,如果连接失败,将尝试非SSL连接·     require:只尝试SSL连接。如果存在CA文件,则按设置成verify-ca的方式验证·     verify-ca:只尝试SSL连接,并验证服务器是否具有由可信任证书机构签发的证书·     verify-full:只尝试SSL连接,并验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致默认值:preferPGSSLROOTCERT指定客户端侧根证书,验证服务器证书有效性必须包含文件的绝对路径,如:export PGSSLROOTCERT='/home/omm/certca.pem'PGSSLCRL指定证书吊销列表文件必须包含文件的绝对路径,如:export PGSSLCRL='/home/omm/sslcrl-file.crl'备注:假设证书,私钥和根证书都放在“/home/omm”目录。3.   用户名和密码验证用户名和密码的验证在服务器侧进行,其逻辑如下:如果某主机需要远程连接到GaussDB(DWS),必须在GaussDB(DWS)系统的配置文件中增加此主机的信息,并且进行客户端接入认证。配置文件(pg_hba.conf)存放在数据目录里。hba(host-based authentication)表示是基于主机的认证。通过调用工具gs_guc实现服务器配置文件pg_hba.conf有关参数设置,每次向配置文件中增加一条连接认证规则,命令如下:gs_guc set -Z coordinator -N all -I all -h "host all jack 10.10.0.30/32 sha256"说明:•        -Z coordinator表示实例类型为coordinator;•        -N all 表示集群的所有主机•        -I all表示主机的所有实例•        -h 表示指定需要在“pg_hba.conf”增加的语句•        all 表示允许客户端连接到任意的数据库•        jack表示允许连接数据库的用户•        10.10.0.30/32表示只允许IP地址为10.10.0.30的主机连接•        sha256表示连接时jack用户的密码使用sha256算法加密配置文件pg_hba.conf中的每条记录可以是以下四种格式之一:local DATABASE USER METHOD [OPTIONS]host DATABASE USER ADDRESS METHOD [OPTIONS]hostssl DATABASE USER ADDRESS METHOD [OPTIONS]hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]说明•        local:只接受通过Unix域套接字进行的连接。•        host:既接受一个普通的TCP/IP套接字连接,也接受一个SSL加密的TCP/IP套接字连接。•        hostssl:只接受一个经过SSL加密的TCP/IP套接字连接。•        hostnossl:只接受一个普通的TCP/IP套接字连接。•        DATABASE:声明记录所匹配且允许访问的数据库:          a)          all:表示该记录匹配所有数据库;          b)         sameuser:表示如果请求访问的数据库和请求的用户同名,则匹配;          c)          samerole/ samegroup:表示请求的用户必须是与数据库同名角色中的成员;          d)         一个包含数据库名的文件或者文件中的数据库列表:文件可以通过在文件名前面加前缀@来声明;          e)          特定的数据库名称或者用逗号分隔的数据库列表;•        USER:声明记录所匹配且允许访问的数据库用户。          a)          all:表明该记录匹配所有用户;          b)         +用户角色:表示匹配任何直接或者间接属于这个角色的成员;          c)          一个包含用户名的文件或者文件中的用户列表:文件可以通过在文件名前面加前缀@来声明;          d)         特定的数据库用户名或者用逗号分隔的用户列表;•        ADDRESS:指定与记录匹配且允许访问的IP地址范围,支持IPv4和IPv6,可以使用如下两种形式来表示:          a)          IP地址/掩码长度。例如:10.10.0.0/24          b)         IP地址子网掩码。例如:10.10.0.0 255.255.255.0•        METHOD:声明连接时使用的认证方法。          a)          trust:只完全信任从服务器本机使用gsql且不指定-U参数的连接,此时不需要口令;          b)         reject:无条件地拒绝连接。常用于过滤某些主机;          c)          md5:要求客户端提供一个md5加密的口令进行认证(不推荐使用);          d)         sha256:要求客户端提供一个sha256算法加密的口令进行认证;          e)          cert:客户端证书认证模式,必须是SSL连接且客户端须提供有效的SSL证书,用户名必须与证书所有者同名;          f)          gss:使用基于gssapi的kerberos认证;          g)         ldap:ldap认证;4.   异常处理问题现象解决方法用户名或密码错误:FATAL: invalid username/password,login denied说明用户名或者密码错误,请检查输入是否有误连接的数据库不存在:FATAL: database "TESTDB" does not exist说明尝试连接的数据库不存在,请检查连接的数据库名输入是否有误未找到客户端匹配记录:FATAL: no pg_hba.conf entry for host   "10.10.0.60", user "ANDYM", database "TESTDB"说明已经连接了服务器,但服务器拒绝了连接请求,因为没有在pg_hba.conf配置文件里找到匹配的记录。请联系管理员在pg_hba.conf配置文件加入用户的信息证书校验失败:SSL error: certificate verify failed说明客户端CA校验服务器证书失败,请检查客户端CA证书配置是否有误无效CA:SSL error: tlsv1 alert unknown ca说明客户端发送的证书,服务器侧CA校验失败,请检查客户端证书配置是否有误服务器不支持SSL,但客户端要求SSL连接server does not support SSL, but SSL was required说明服务器关闭SSL建连,而客户端强制要求建连SSL连接,请联系管理员开启SSL连接(或客户端采用非SSL连接)服务器强制要求SSL连接,客户端不支持FATAL: SSL connection is required by the database system说明客户端不支持SSL建连,请检查客户端SSL建连相关参数配置是否有误服务端认证模式选择证书认证,校验失败FATAL: certificate authentication failed for user "user01"说明服务端认证模式选择证书认证,而客户端登录用户user01与证书不匹配,请检查客户端证书配置是否有误校验服务端证书失败server common name "server" does not match host name说明客户端认证模式选择verify-full,而校验的服务器主机名与服务器证书中名称不一致,请检查“/etc/hosts”中配置的服务器主机名是否有误错误的版本SSL error: wrong version number说明服务器无法读取到服务器证书,请联系管理员检查服务器证书配置是否有误原文链接:https://bbs.huaweicloud.com/blogs/203214【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [集群&DWS] GaussDB(DWS) 数据库安全设置之三权分立
    【摘要】 为了保护集群数据的安全,GaussDB(DWS)支持对集群设置三权分立(系统管理员、安全管理员、审计管理员),使用不同类型的用户分别控制不同权限的模式。GaussDB(DWS)创建集群时默认用户是SYSADMIN属性的系统管理员,具备系统最高权限。在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立,将系统管理员的权限分立给安全管理员和审计管理员。三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考 CREATE ROLE。默认的用户权限对象名称系统管理员安全管理员审计管理员普通用户表空间对表空间有创建、修改、删除、访问、分配操作的权限。不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。表对所有表有所有的权限。仅对自己的表有所有的权限,对其他用户的表无权限。索引可以在所有的表上建立索引。仅可以在自己的表上建立索引。模式对所有模式有所有的权限。仅对自己的模式有所有的权限,对其他用户的模式无权限。函数对所有的函数有所有的权限。仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。自定义视图对所有的视图有所有的权限。仅对自己的视图有所有的权限,对其他用户的视图无权限。系统表和系统视图可以查看所有系统表和视图。只可以查看部分系统表和视图。详细请参见系统表和系统视图。三权分立的权限最小化设置将数据库安全提升一个档次。如何实现三权分立的设置,请看如下:1、在数据仓库服务界面创建集群后,单击集群名称,进入集群详情,在详情页签中点击“安全设置”。2、进入“安全设置”,呈现设置界面。3、打开“三权分立”开关,可进行设置安全管理员及审计管理员用户名及密码(默认系统管理员在创建集群时已设定)。4、设置完成后,对于审计配置建议进行设置,审计也是数据库运行过程的关键日志。   审计保留策略建议“时间优先”,最长可保留730天,再根据实际需要将越权访问、DML、DDL等分别设置,数据仓库服务还提供的审计日志转储OBS的功能,设置转储的OBS桶及路径,在转储周期内将生成审计日志文件,直接放在您的OBS桶中,方便查看。5、设置完后,点击应用,成功后即可连接数据库查看三权分立的效果。审计查询命令是数据库提供的sql函数pg_query_audit,其原型为:pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)参数startime和endtime分别表示审计记录的开始时间和结束时间,audit_log表示所查看的审计日志信息所在的物理文件路径,当不指定audit_log时,默认查看连接当前实例的审计日志信息。通过sql函数pgxc_query_audit可以查询所有CN节点的审计日志,其原型为:pgxc_query_audit(timestamptz startime,timestamptz endtime)说明: startime和endtime的差值代表要查询的时间段,其有效值为从startime日期中的00:00:00开始到endtime日期中的23:59:59之间的任何值。请正确指定这两个参数,否则将查不到需要的审计信息。原文链接:https://bbs.huaweicloud.com/blogs/180975【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [SaaS] 华为云DBSS数据库脱敏的机制和原理是什么?
    数据库敏感数据发现:数据库安全防护内置PCI、HIPAA、SOX、GDPR等合规知识库,用户也可以自定义敏感数据的规则知识库,并通过配置相应敏感数据发现策略来发现数据库中的敏感数据;一旦识别了敏感数据,用户就可以一键自动生成脱敏规则和审计规则。动态数据脱敏:用户可以设置脱敏规则来对指定数据库表/列以及来自特定源IP、用户和应用的查询进行脱敏;通过精确的脱敏引擎,对用户的敏感数据实施实时脱敏,不会对应用产生性能损耗,也不会改变数据在数据库中的存储。数据库脱敏能力支持预定义策略和自定义策略,详见产品文档https://support.huaweicloud.com/usermanual-dbss/dbss_01_0050.html数据库脱敏使用最佳实践详见https://support.huaweicloud.com/bestpractice-dbss/dbss_06_0003.html
  • 咻享智能|什么是智能电表?智能电表具备哪些功能?
    智能电表能让客户及时掌握销售电价,做好家庭用电计划,实现节能低碳生活。具有精确度高,智能扣费、电价查询、电量记忆、抄表时间冻结、余额报警、信息远程传送等高科技化功能特性,能最大限度避免人为错误,不会影响客户的正常用电,实现用电客户明白消费、诚信消费,为智能用电打好基础。那么什么是智能电表?智能电表又具备哪些功能呢?下面就一起来看看吧。一、什么是智能电表?1、智能电表是智能电网数据采集的基本设备之一,承担着原始电能数据采集、计量和传输的任务,是实现信息集成、分析优化和信息展现的基础。 它除了具备传统电能表基本用电量的计量功能外,还具有双向多种费率计量、用户端控制、多种数据传输模式的双向数据通信、防窃电等智能化的功能。2、智能电网就是电网的智能化,也被称为“电网2.0”,智能电网利用双向数字技术控制用户用电设备从发电厂向用户供电,以此达到节约能源,降低损耗,增强电网可靠性的目的。二、智能电表具备哪些功能?1、报警功能:当剩余电量小于报警电量时,电表常显剩余电量提醒用户购电。2、数据保护:数据保护采用全固态集成电路技术,断电后数据可保持10年以上。3、电量提示:当表中剩余电量等于报警电量时,跳闸断电一次,用户需插入IC卡,可恢复供电,用户此时应及时购电。4、自动断电:当电能表中剩余电量为零时,电能表自动跳闸,中断供电,用户此时应及时购电。5、回写功能:电能卡可将用户的累计用电量、剩余电量、过零电量回写到售电系统中便于管理部门的统计管理。6、用户抽检功能:售电软件可提供数据抽检用电量并根据要求提供优先抽检的用户序列。7、电量查询:插入IC卡依次显示总购电量、购电次数、上次购电量、累计用电量、剩余电量。8、防窃电功能:一表一卡不可复制,逻辑加密。有效防止技术性窃电。9、过压保护功能:当实际用电负荷超过设定值时,电表自动断电,插入用户卡,恢复供电。智能电表的出现,不仅让用户可充分利用峰、谷电价的差异自主定制用电方案,可在手机、微信上缴费充值,缴费更加便捷,而且通过智能电表的远程信息传送功能,电力工作人员可以实时监控电表工作状态,及时发现电表故障,避免给用户带来损失。