eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

October 22, 2020

解决Mac下远程cannot change locale (UTF-8) No such file or directory

果然所有问题都是有答案的,Mac 上 ssh 这个问题好长时间,早有人提供方法分析。收录:

问题描述

  • Mac下设置第一语言为English
  • 在Terminal或者iTerm2上登录远端Linux时,Linux的prompt提示 setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
  • 登录Linux后无法正常显示中文

原因

  1. Mac下设置为英文后,locale字符集默认是"C",Terminal或者iTerm2中有选项会自动设置LC_CTYPE或者LC_LANG为UTF-8
  2. Mac下ssh客户端的配置文件/etc/ssh/ssh_config中,会尝试设置本地的LANG到远端服务器中。
  3. 远端Linux服务器,没有UTF-8的字符集,就导致了setlocale的警报

解决办法

为了登录而来,修改每个服务器的字符集,操作上是不可行的。最简单的办法就是修改Mac本地的ssh客户端配置,不要将LANG设置发送到服务器端。
打开ssh配置文件,sudo vim /etc/ssh/ssh_config, 注释掉如下几行

1
2
Host *
SendEnv LANG LC_*

重新ssh到服务器,就不会再有setlocale的告警了。

Posted by eygle at 11:48 AM | Permalink | FAQ (269)

July 28, 2020

2020 :国产数据库名录和产品信息一览-墨天轮

墨天轮原文链接:https://www.modb.pro/db/24797

国产数据库列表,此表不断更新,以期反映国产数据库的发展动态,如有反馈提醒,请在本文末留言。注意,文章所列产品,将以产品名称为顺序,所以序列可能随时更改。

国产数据库列表,此表不断更新,以期反映国产数据库的发展动态,如有反馈提醒,请在本文末留言。注意,文章所列产品,将以产品名称为顺序,所以序列可能随时更改。

WechatIMG84.png

我们还将这些产品和墨天轮的国产数据库排行相关联,以期为读者和关注国产数据库生态的朋友,提供充分的信息。

目录

国产数据库列表

序号
产品名称产品类别厂商相关资讯
1 AISWare AntDB 分布式关系型数据库 亚信科技控股有限公司
2 AliSQL 开源云数据库RDS 阿里云计算有限公司
3 AnalyticDB 实时分析数据库 阿里云计算有限公司 [1]
4 ArkDB 分布式关系型数据库 北京极数云舟科技有限公司
5 AtlasDB 企业级私有云数据库 北京海量数据技术股份有限公司
6 BC-RDB Hybrid 数据仓库 中移(苏州)软件技术有限公司
7 博阳数据库BeyonDB 空间数据库 北京合众思壮科技股份有限公司
8 BGraph 面向商业的图数据库 百度
9 Cedar 开源分布式关系型数据库 华东师范大学数据科学与工程学院
10 ChronusDB 时序数据库 北京青云科技股份有限公司
11 CirroData 分布式分析型 北京东方国信科技股份有限公司
12 Claims 开源分布式内存数据库 华东师范大学数据科学与工程学院
13 CloudTable 时序数据库 华为技术有限公司
14 CTSDB 时序数据库 腾讯云计算(北京)有限责任公司
15 CynosDB 分布式云数据库 腾讯云计算(北京)有限责任公司
16 达梦数据库DM 集中式事务型 武汉达梦数据库有限公司 [1]
17 DolphinDB 分布式时序数据库 浙江智臾科技有限公司
18 DragonBase 分布式云原生数据库 北京金山云网络技术有限公司
19 京东云DRDS 分布式关系型数据库 京东智联云
20 DThink ADB 分析型数据库 杭州数梦工场科技有限公司
21 易鲸捷数据库EsgynDB 分布式关系型数据库 贵州易鲸捷信息技术有限公司 [1]
22 Galaxybase 分布式图数据库 浙江创邻科技有限公司
23 GaussDB AI-Native分布式数据库 华为技术有限公司
24 GBase 8a分析型,8s安全,8t事务型 天津南大通用数据技术股份有限公司 [1] [2]
25 阿里云图数据库GDB 标准图数据库 阿里云计算有限公司
26 梦图数据库GDM 分布式图数据库 四川蜀天梦图数据科技有限公司
27 GeaBase 实时金融级分布式图数据库 蚂蚁金服
28 GeminiDB 分布式多模NoSQL数据库 华为技术有限公司
29 GoldenDB 分布式事务型 中兴通讯股份有限公司 [1]
30 Goldilocks 分布式内存数据库 北京科蓝软件系统股份有限公司
31 GraphDB 图数据库 阿里云计算有限公司
32 GreatDB 安全数据库 北京万里开源软件有限公司
33 Gridsum ZETA PDW 并行数据仓库系统 北京国双科技有限公司
34 gStore 开源图数据库 北京大学王选计算机研究所
35 H3C DataEngine 大数据平台 新华三技术有限公司
36 Haisql_memcache Key-Value内存数据库 乌鲁木齐云山云海信息技术有限责任公司
37 HashData 数据仓库 北京酷克数据科技有限公司
38 HHADB 分析型数据库 北京恒辉信达技术有限公司
39 HHDB 关系型数据库 北京恒辉信达技术有限公司
40 瀚高数据库HighGo DB 关系型数据库 瀚高基础软件股份有限公司
41 HotDB Server 分布式关系型数据库 上海热璞网络科技有限公司
42 华鼎数据库HUABASE 列存关系型数据库 清华大学信息技术研究院
43 Huayisoft DBServer Key-Value内存数据库 九江易龙技术有限公司
44 Hubble HTAP 天云融创数据科技(北京)有限公司
45 HugeGraph 开源图数据库 百度
46 iBASE 非结构化网络数据库 北京国信贝斯软件有限公司
47 Intcube OLAP 多维数据仓库 智达方通
48 K-DB 关系型数据库 浪潮集团有限公司
49 KingBaseES 关系型数据库 北京人大金仓信息技术股份有限公司 [1]
50 KingDB 分布式云原生数据库 北京金山云网络技术有限公司
51 Kingwow 分布式数据库 上海丛云信息科技有限公司
52 KunDB 分布式关系型数据库 星环信息科技(上海)有限公司
53 LongDB 企业级超融合数据平台 龙迪数智科技(北京)有限公司
54 MegaWise 分析型数据库 上海赜睿信息科技有限公司
55 Nebula Graph 开源的分布式图数据库 杭州欧若数网科技有限公司
56 OceanBase 分布式关系数据库 蚂蚁金服、阿里巴巴 [1]
57 OpenBASE 多媒体关系数据库 东软集团有限公司
58 神通数据库OSCAR 通用关系型数据库 天津神舟通用数据技术有限公司
59 Oushu Database 新一代数据仓库 北京偶数科技有限公司
60 Palo 开源MPP架构数据仓库 北京百度网讯科技有限公司
61 Pegasus 开源分布式Key-Value数据库 小米
62 PhxSQL 开源关系型数据库 腾讯微信
63 PolarDB 关系型分布式云原生数据库 阿里云计算有限公司
64 PolonDB 兼容PG生态的分布式关系型数据库 北京青云科技股份有限公司 [1]
65 Qcubic 高性能内存数据库 北京快立方科技有限公司 [1]
66 钱库QianBase 融合型分布式国产数据库 贵州易鲸捷信息技术有限公司
67 鲲腾量子安全数据库Quantum DB 基于量子密钥分发协议的分布式关系型数据库 安徽华典大数据科技有限公司
68 RadonDB 分布式关系型数据库 北京青云科技股份有限公司
69 RapidsDB MPP内存数据仓库 威讯柏睿数据科技(北京)有限公司
70 巨杉数据库SequoiaDB 金融级分布式数据库 广州巨杉软件开发有限公司 [1]
71 SG-RDB 关系型数据库 许继集团 [1]
72 ShinDB 分布式数据库 北京新数科技有限公司
73 星瑞格数据库SinoDB 福建星瑞格软件有限公司
74 SkyTSDB 时序数据库 南京天数智芯科技有限公司
75 SRDB 湖南上容信息技术有限公司
76 TafDB 分布式数据库 北京百度网讯科技有限公司
77 TaurusDB 分布式数据库 华为云
78 TBase 分布式HTAP数据库 腾讯云计算(北京)有限责任公司 [1]
79 TcaplusDB 分布式非关系型数据库 腾讯云计算(北京)有限责任公司
80 TDengine 时序数据库 北京涛思数据科技有限公司
81 TDSQL 分布式数据库 腾讯云计算(北京)有限责任公司 [1]
82 TeleDB 分布式数据库 中国电信
83 TiDB 开源分布式关系型数据库 北京平凯星辰科技发展有限公司
84 ToprowDB 华胜信泰信息产业发展有限公司
85 Transwarp ArgoDB 分布式闪存数据库 星环信息科技(上海)有限公司
86 TrendDB 分布式实时数据库 朗坤智慧科技股份有限公司
87 阿里云TSDB 时序数据库 阿里云计算有限公司
88 百度云TSDB 时序数据库 百度
89 TuGraph 图数据库 北京费马科技有限公司
90 优炫数据库UXDB 企业级分布式数据库 北京优炫软件股份有限公司
91 UPDB 鼎天盛华(北京)软件技术有限公司
92 XCloud DB 分布式数据库 北京东方国信科技股份有限公司
93 X-DB 关系型分布式数据库 阿里巴巴集团
94 天河大数据并行数据库T1 大数据并行数据库 南威软件股份有限公司
95 虚谷数据库 分布式关系型数据库 虚谷伟业
96 云树·Shard 分布式数据库 上海爱可生信息技术股份有限公司

国产数据库大事记

  • 2019年5月15日,华为推出分布式数据库GaussDB
  • 2019年5月21日,阿里云推出云原生数据库PolarDB
  • 2019年8月28日,腾讯云一次推出五大数据库新品,包括数据库智能管家DBBrain、云原生数据库CynosDB正式商业化、数据库TBase启动公测、灾备服务DBS启动邀测、Redis混合存储版启动邀测
  • 2019年9月,基于TDSQL打造的张家港农商银行新一代核心业务系统成功上线投产
  • 2019年10月2日,OceanBase打破数据库基准性能测试(TPC-C)的世界纪录,其tpmC值超过6000万
  • 2019年10月27日,采用GoldenDB的中信银行信用卡中心核心业务系统上线运行
  • 2020年05月20日,TPC官网公布,由蚂蚁金服自主研发的分布式关系数据库OceanBase,在TPC-C基准测试中打破由自己保持的世界纪录,事务处理性能由上次测试的6088万tpmC提升到7亿tpmC,性价比从上次的¥6.25/tpmC优化到¥3.98/tpmC。
  • 2020年5月23日,全国人大代表、合肥工业大学应用数学研究所所长檀结庆,对于数据库领域的国产化提出了建议,他呼吁扩大国产数据库金融领域试点。还援引易鲸捷贵阳银行与贵阳农商银行核心交易系统数据库国产化试点项目。
  • 2020年5月29日,在2020"数博发布"活动中,易鲸捷信息技术有限公司发布其公司产品钱库(QianBase)数据库最新版,并就易鲸捷如何在银行核心交易系统落地国产分布式数据库情况进行分享。
  • 2020年6月1日,在OceanBase数据库问世十年之际,OceanBase的独立经营实体----北京奥星贝斯科技有限公司浮出水面,在北京注册成立。
  • 2020年6月30日晚间,华为兑现了去年HDC大会上的承诺,openGauss终于正式亮相,源代码开放、社区成立。

Posted by enmotech at 10:42 AM | Permalink | modb.pro (15)

July 27, 2020

Oracle FAQ:关于 TDE 透明数据加密 11g 的常见问题-墨天轮

墨天轮原文链接:https://www.modb.pro/db/28248

作者:易安珠

TDE 旨在让客户能够透明地在数据库中进行加密,而不会影响现有应用。以加密格式返回数据会破坏大多数现有应用。TDE 的优势在于,加密不会产生传统数据库加密解决方案所产生的开销,传统的方案通常需要对应用进行更改,包括使用数据库触发器和视图,因而费时费力,成本高昂。
返回 Advanced Security 主页

透明数据加密 (TDE)

常见问题解答

问题和解答

    1. 任何人只要有权访问加密数据就能对其进行解密吗?

      是的,TDE 旨在让客户能够透明地在数据库中进行加密,而不会影响现有应用。以加密格式返回数据会破坏大多数现有应用。TDE 的优势在于,加密不会产生传统数据库加密解决方案所产生的开销,传统的方案通常需要对应用进行更改,包括使用数据库触发器和视图,因而费时费力,成本高昂。不过,客户可以使用 Oracle Database Vault 保护应用数据,防止 DBA 及其他超级用户的不当使用,还可以对数据库和应用实施强大的访问权限控制。


    1. TDE 会带来哪些开销?

      表 A:TDE 会带来哪些开销?
      TDE 表空间加密
      (Oracle Database 11g)
      TDE 列加密
      (Oracle Database 10gR2、
      Oracle Database 11g)
      存储 没有额外的存储开销。 TDE 列加密带来的存储开销为每个加密值 1 到 52 个字节。
      1. 必需:对于 AES,填充到下一个 16 字节;对于 3DES168,填充到下一个 8 字节。所以,如果一个值需要 9 个字节的存储空间,加密该值将需要额外 7 个字节的存储空间(对于 AES)。
      2. 可选:额外 20 个字节的完整性检查
      3. 可选:如果为加密列指定了"SALT",每个值将需要额外 16 个字节的存储空间。

      了解这些数字有助于进行存储规划,但 DBA 和开发人员不用手动为 TDE 列加密扩大列存储空间,因为在将某列标记为"encrypted"时,TDE 会透明地完成这项任务。

      用户可以选择 'no salt' 选项来减少所需额外存储空间(可节省 16 个字节),还可以选择 'nomac' 选项(10.2.0.4、11.1.0.7 和 Oracle Database 11g 第 2 版中提供该选项)来消除为每个加密字段计算和存储 20 字节散列值而需要的额外的 CPU 周期和磁盘空间。

      性能 内部基准测试结果和来自成功生产实施的反馈结果表明,性能开销只是个位数。对于 Oracle Database 11g 第 2 版补丁集 1 (11.2.0.2),TDE 表空间加密可自动利用基于 AES-NI 的硬件密码加速(可用于大多数 Intel? XEON? 5600 CPU),TDE 表空间加密因而成为了"几乎没有影响"的加密解决方案,特别是在数据仓库环境中。 加密或解密通用属性(如信用卡号码)带来的性能开销估计为 5% 左右。基于加密列构建索引时,将使用密文构建索引。如果 TDE 加密列建立了索引并为 SQL 语句所引用,Oracle 将用表密钥对 SQL 语句中用到的值进行透明加密并使用密文进行索引查询;如果所有索引都按照在应用 TDE 列加密之前最初设计的方式重新构建,客户报告的性能影响可以忽略不计。建议打算使用 TDE 列加密的客户升级到 Oracle Database 10gR2 10.2.0.4/5(并应用补丁 7639262)或 Oracle Database 11gR1 11.1.0.7(并应用补丁 8421211),因为这两个版本包含可减少性能开销的更改。两个相应的补丁已集成到 Oracle Database 11g 第 2 版中。

    1. 哪些加密算法可与 TDE 一同使用?

      TDE 支持 AES256、AES192(列加密默认算法)、AES128(表空间加密默认算法)和 3DES168。


    1. 可以使用第三方加密算法代替 TDE 提供的算法吗?

      不可以,不能插入其他加密算法。Oracle 提供人们广泛接受的加密算法,并且将会引入新的可用标准算法。


    1. 可以对外键约束中使用的列采用 TDE 列加密吗?

      TDE 不支持对外键约束中使用的列进行加密。这是因为各个表有自己独有的加密密钥。以下查询可以列出数据库中存在的所有 RI(引用完整性)约束:

      SQL> select A.owner, A.table_name, A.column_name, A.constraint_name
      from dba_cons_columns A, dba_constraints B
      where A.table_name = B.table_name and B.constraint_type = 'R';


    1. 可以对联接中使用的列进行 TDE 列加密吗?

      可以。即使联接条件的列已加密,联接表对于应用和用户也是透明的。


    1. 可以对已建索引的列进行加密吗?

      TDE 表空间加密透明地支持所有索引。

      而对于 TDE 列加密,索引必须是用于等式搜索的普通 B 树索引。如果是基于函数的复合索引,则不能对相应函数使用的列进行加密。当对已有索引的列进行加密时,建议首先利用 dbms_metadata.get_ddl 获取索引定义,然后丢弃该索引,使用"no salt"选项对该列进行加密,最后重建索引。


    1. TDE 列加密支持哪些数据类型和数据长度?

      TDE 表空间加密对于支持的数据类型没有限制;以下数据类型可使用 TDE 列加密进行加密:


      varchar2 (< 3933 characters) nvarchar2 (< 1967 characters)
      char (< 1933 characters) nchar (< 967 characters)
      number raw
      binary_float binary_double
      timestamp date
      SecureFile (11gR1 and later)

    1. 数据在网络上传输时仍处于加密状态吗?

      使用 TDE 加密后的数据在从数据库文件中读回时会被解密。因此,如果在网络上传输该数据,它将处于明文状态。不过,客户可以使用 Oracle 的网络加密解决方案(示例)对这些数据进行加密,该方案和 TDE 一同包含在 Oracle Advanced Security 选件中。Oracle 的网络加密解决方案可以对通过 SQLNet 与数据库往来传输的所有数据进行加密。


  • 数据库内存 (SGA) 中包含的是明文数据还是加密数据?

    对于 TDE 列加密,加密数据在 SGA 中仍保持加密状态,但是对于 TDE 表空间加密,数据在 SGA 中已被解密,从而提供 100% 的透明性。


  • 如何知道要加密哪些数据呢?

    如果客户必须遵守 PCI-DSS 标准,那么信用卡号码(亦称 主账号,即 PAN)需要加密后再保存。

    如果需要遵守几乎无处不在的数据泄露通知法案(如 CA SB 1386、CA AB 1950 以及美国超过 43 个州的类似法律),那么需要加密的数据还有姓氏、名称、驾照号码及其他个人身份信息 (PII)。2008 年初,CA AB 1298 将医疗和健康保险信息也列为 PII 数据。

    此外,客户所处行业特有的隐私与安全标准可能要求对特定资产进行加密,另外,客户自身的核心业务资产(如药品研究成果、油田勘探成果、金融合同、执法举报者的个人详细信息等)可能也需要加密以便安全地保存在存储介质上。在医疗卫生行业,患者数据、健康记录和 X 射线影像的私密性非常重要。X 射线影像的存储大多遵循 DICOM 标准,该标准特意将 PII 信息纳入到了影像元数据中,如果不对影像和患者数据进行适当的加密保护,入侵者很容易就能获得这些数据。在 Oracle Database 11g 中,DICOM 影像可以存储到"SecureFile"列中,TDE 可以通过列加密对这些列进行加密,也可以通过表空间加密对包含"SecureFile"列(或通常的 LOB 列)的表进行加密。


  • 需要加密的数据都在哪里?

    安全团队或 DBA 团队在使用 TDE 列加密时面临的非常困难的任务是:

    如果运行的应用是内部自行开发的,那么问下开发人员可能就会知道敏感信息都在哪些表里。

    但如果运行的是商业打包软件应用,那就比较困难了。由于这类应用的每次部署都有不同的隐私和安全性要求,因此就连供应商自己都不太容易确定要加密哪些内容。如果以遵守 PCI 标准为目标,并且应用表中相应的列名类似于"CREDIT_CARD"或 "ACCOUNT_NUMBER",那么利用 Oracle 丰富的元数据信息库即能轻松找出它们。

    但如果列名不是对列内容的描述性标识,就要通过更复杂的方法来搜索敏感数据。在这种情况下,我们只能通过模式搜索来找出敏感内容:社会保险号码始终类似于"aaa-bb-cccc",但信用卡号码不太一致 -- 有的是 13 位数字,有的是 16 位数字,而且并非总是 4 位一组。

    如果要加密的列具有 TDE 列加密不支持的特质(在索引、数据类型或外键方面),或者无法在应用表中找到存储敏感数据的列,TDE 表空间加密是您的理想选择。


  • 对于 Oracle Database 11g,何时使用 TDE 列加密或 TDE 表空间加密?

    如果下列任何一项是正确的,请使用 TDE 表空间加密

    1. 您希望加密解决方案具有极佳的性能。TDE 表空间加密在大多数情况下具有更好、更稳定的性能特点。此外,表空间加密还在允许的情况下特别利用了硬件密码加速,从而进一步将性能影响减少至近乎为零。对于支持 AES-NI 的 Intel? XEON? 5600 CPU,Oracle Database 11g 第 2 版补丁集 1 (11.2.0.2) 提供硬件密码加速支持。
    2. 您无法一一找出包含敏感内容的所有列。
    3. TDE 列加密不支持敏感列的数据类型和/或数据长度。
    4. 敏感列用作外键。
    5. 应用对已建索引的加密列执行范围扫描。
    6. 对于加密列,您需要不同于 B 树类型的索引。

  • TDE 与 Oracle 早前提供的加密工具包有何不同?

    Oracle 在 Oracle8i 中引入了加密包"dbms_obfuscation_toolkit",后来在 Oracle 10g 第 1 版中引入了"dbms_crypto"加密包。这些 API 可用于对数据库中数据手动加密,但应用必须对加密密钥进行管理并通过调用 API 执行所需加解密操作。

    与 dbms_obfuscation_toolkit 和 dbms_crypto 加密包不同的是,TDE 列加密(从 10gR2 起引入)和 TDE 表空间加密(从 11gR1 起引入)无需更改应用,对于最终用户来说是透明的,并且提供内置的自动化密钥管理。


  • 如何获得 TDE 许可?

    TDE 是 Oracle Advanced Security 选件的一部分,该选件还包含网络加密和强身份验证。Oracle 企业版客户可以使用该选件。


  • 什么是 Oracle 钱夹?

    钱夹是一个加密的容器,用于存储身份验证和签名凭证,包括 SSL 所需的密码、TDE 主密钥、PKI 私钥、证书和可信证书。借助 TDE,可以在服务器上使用钱夹保护 TDE 主密钥。除非使用 Diffie-Hellman,否则 Oracle 要求在 SSL 上通信的实体包含一个钱夹,该钱夹应当含有 X.509 版本 3 证书、私钥、可信证书列表。

    Oracle 提供两种类型的钱夹:加密钱夹和(本地)自动打开的钱夹。我们建议对 TDE 使用加密钱夹(文件名为 ewallet.p12)。数据库启动后和访问 TDE 加密数据前,需手动打开该钱夹。由于数据在 REDO 日志、UNDO 和 TEMP 表空间中处于加密状态,因此在打开数据库前需要为其提供 TDE 主加密密钥:


    $ sqlplus / as sysoper
    PUBLIC> startup mount;
    ORACLE instance started.
    Database mounted.
    PUBLIC> alter system set encryption wallet open identified by "wallet_password";
    System altered.
    PUBLIC> alter database open;
    Database altered.
    如果未打开该钱夹,查询受 TDE 保护的数据时数据库将返回错误。(本地)自动打开的钱夹(文件名是 cwallet.sso)在访问加密数据时会自动打开,因此它适用于无人值守的 Data Guard 环境(Oracle 10gR2:仅物理备用数据库;Oracle 11g:物理和逻辑备用数据库),在这类环境中加密后的数据会传送到辅助站点。在创建自动打开的钱夹后,永远不要删除加密钱夹,否则,主加密密钥更新操作将会失败。
    本地自动打开的钱夹是在 Oracle Database 11g 第 2 版中引入的,该钱夹只能在创建它的服务器上自动打开。

  • 如何保护 TDE 钱夹?

    在 Unix 上,应当使用适当的目录 (700) 和文件权限 (600) 只允许"oracle:oinstall"用户:组访问该钱夹。不过,即使 root 用户有权访问钱夹文件,但如果该用户不知道钱夹密码,仍然无法访问主加密密钥。在所有平台上,钱夹密码(用于加密该钱夹的密码)应至少包含 8 个字母和数字字符。钱夹密码可通过 Oracle Wallet Manager 或 orapki 实用程序来更改。强烈建议在更改钱夹密码之前对 Oracle 钱夹进行备份。更改钱夹密码不会更改 TDE 主密钥(它们彼此独立)。
    在 Linux 平台上,从 Oracle Database 11g 第 2 版 (11.2.0.2) 起,我们建议将 Oracle 钱夹存储在 ACFS(基于 ASM 的集群文件系统,适用于单实例、单节点 RAC、多节点 RAC,但不适用于 Exadata X2)中,因为该文件系统新的安全特性提供出色的钱夹保护和职责分离。有关如何在 ACFS中创建访问控制策略(含职责分离)的详细分步指南,请参阅频繁更新的 TDE 优秀实践文档。


  • 可否使用 Oracle Wallet Manager (OWM) 为 TDE 创建加密钱夹和主密钥?

    不能。如果您使用 Oracle Wallet Manager 创建钱夹,该钱夹不包含 TDE 所需的主密钥。只有以下 SQL 命令:


    SQL> alter system set encryption key identified by "wallet_password";

    能够创建加密钱夹(若其在 sqlnet.ora 文件中指定的位置不存在)并为其添加 TDE 主密钥。

    在 Oracle 11gR1 中,TDE 及其他安全特性已迁移到 Enterprise Manager Database Control 中,因此可以使用 Enterprise Manager 基于 Web 的 GUI 来生成钱夹和主密钥。

    Oracle 11g 第 2 版中引入了新的统一主加密密钥,该密钥可同时用于 TDE 列加密和表空间加密;您可以在 Oracle 钱夹中创建、存储和更新(轮换)此密钥。


  • 可以更改钱夹密码吗?

    可以,您可以通过 Oracle Wallet Manager (OWM) 更改钱夹密码。在尝试更改钱夹密码前,请创建备份。更改钱夹密码不会更改主密钥(它们彼此独立)。在 Oracle 11gR1 11.1.0.7 中,orapki 已得到增强,允许通过命令行更改钱夹密码:


    $ orapki wallet change_pwd -wallet <wallet_location>

  • 如何创建(本地)自动打开的钱夹?

    当需要在无人干预的情况下保持数据库可用性时(无人值守的运营),对 TDE 主密钥使用密码保护的加密钱夹可能并非合适的解决方案;而(本地)自动打开的钱夹在数据库启动后无需钱夹密码,让授权用户和应用可以访问加密数据。

    (本地)自动打开的钱夹 (cwallet.sso) 需要用现有的加密钱夹 (ewallet.p12) 创建,以便将主密钥传给新建的自动打开钱夹。

    您可以在 Oracle Wallet Manager (OWM) 中打开加密钱夹,选中 Auto Login 复选框,然后选择 Save 将自动打开的钱夹写入磁盘,也可以使用命令行工具 orapki:


    $ orapki wallet create -wallet <wallet_location> -auto_login

    创建本地自动打开钱夹的命令语法如下所示:


    $ orapki wallet create -wallet <wallet_location> -auto_login_local

    两种情况(Oracle Wallet Manager 和 orapki)都要求提供钱夹密码。请保留加密钱夹,因为主密钥更新操作需要使用该钱夹,并且该钱夹可能包含弃用主密钥列表。


  • 使用 Oracle Secure Backup 时,如何避免将 Oracle TDE 钱夹备份到 RMAN 数据库备份所在的磁带上?

    RMAN 只会将数据库文件、重做日志等添加到备份文件中,因此加密钱夹或自动打开的钱夹不会成为数据库备份的一部分。Oracle Secure Backup (OSB) 使用数据集定义待备份的操作系统文件。OSB 自动排除自动打开的钱夹 (cwallet.sso),但不会自动排除加密钱夹 (ewallet.p12),您需要使用排除数据集语句来指定备份过程中需要跳过的文件:


    exclude name .p12

  • 钱夹备份优秀实践

    请在发生以下情况时立即备份 Oracle 钱夹:创建钱夹后、每次钱夹内容发生更改时(例如由于主密钥更新操作),以及每次更改钱夹密码后。始终将钱夹(加密钱夹或本地自动打开的钱夹)存储到远离数据库备份的位置。


  • 哪些打包应用通过了透明数据加密认证?

    Oracle 投资于各种软件解决方案的兼容性测试,其中包括作为 Oracle 集成式软硬件体系一部分的应用及其他第三方应用。下表总结了这些应用认证结果。有关详细信息,请参见链接页面和文件。

    表 B:通过透明数据加密认证的应用
    TDE 表空间加密
    (Oracle Database 11g)
    TDE 列加密
    (Oracle Database 10.2.0.4/5 或
    Oracle Database 11g)
    Oracle E-Business Suite(产品介绍单击这里了解更新
    Oracle PeopleSoft Enterprise 8.48 及更高版本
    产品介绍 | 红皮书 | 迁移指南
    Oracle PeopleSoft Enterprise 8.46 及更高版本(产品介绍
    Oracle Siebel CRM 8.0 及更高版本(产品介绍 Oracle Siebel CRM 7.7 及更高版本
    Oracle JD Edwards EnterpriseOne(产品介绍 Oracle Financial Services (iFlex) FlexCube 10.0
    Oracle 零售应用 (Retek):
    • ReSA 12.0 及更高版本和 13.0 (10gR2)
    • ReSA 13.1 (11gR1)
    Infosys Finacle
    SAP 6.40_EX2 及更高版本(仅 UNIX 和 Linux) SAP 6.40 及更高版本(SAP 说明 974876)
    Oracle Internet Directory 10.1.4.2(白皮书


  • 可否对 Exadata 中存储的数据进行加密?

    可以。透明数据加密是在大规模 Exadata 环境中保护敏感数据的一种好办法。Exadata 让大幅提高加密性能成为可能。Exadata 提供的超强加密性能归功于以下独到之处:

    1. Exadata 系统中优化的 Oracle 硬件和软件
    2. 各个存储和计算节点间的分布式加密处理
    3. 智能扫描和混合列压缩 (EHCC) 等 Exadata 原生特性
    4. 提供硬件密码加速

    例如,光是 Exadata 中的硬件密码加速就可将性能提高多达 10 倍(相对于没有硬件加速的情况)

    下表总结了 Exadata X2 系统计算和存储节点上的性能特点。该表重点介绍了可以启用硬件密码加速的情况。

    增速比较根据使用和不使用硬件加速情况下测量的加密/解密吞吐量得出
    Exadata 型号X2-2X2-8
    节点加密解密加密解密
    计算 在 Intel Xeon X5670(含补丁 10080579)中启用硬件加速 在 Intel Xeon X5670 中默认启用硬件加速 在 Intel? X7560 中通过 Nehalem 技术实现硬件加速
    存储 不适用 在 Intel Xeon L5640 中默认启用硬件加速 不适用 在 Intel Xeon L5640 中默认启用硬件加速

    注:在 Oracle Exadata V2 和 X2 中,表密钥(用于TDE 列加密)或表空间密钥(用于 TDE 表空间加密)被发送到存储单元,以便首先解密内容,然后应用智能扫描。内容加密在计算节点中进行。解密通常在计算节点中进行,但是当查询被推送到存储节点时,解密会在存储节点中进行,以便启用智能扫描。


  • 什么是 Oracle Secure Backup (OSB)?

    Oracle Secure Backup 为 Oracle 数据库提供了一种优化、高效的磁带备份解决方案。OSB 能够以加密的格式在磁带上存储数据,从而防范备份磁带被盗窃。


  • Oracle RMAN 如何处理加密数据?

    表 B:Oracle 透明数据加密和 Oracle RMAN
    应用数据RMAN 压缩备份RMAN 加密备份RMAN 压缩和加密备份
    未加密 压缩数据 加密数据 数据先压缩再加密
    使用 TDE 列进行加密 压缩数据;将加密列视为未加密 加密数据;对加密列双重加密 数据先压缩再加密;将加密数据视为未加密;对加密列双重加密
    使用 TDE 表空间加密进行加密 对加密的表空间进行解密、压缩和重新加密 加密的表空间原样传送给备份 对加密的表空间进行解密、压缩和重新加密

    当存在本地 TDE 主加密密钥时"透明"加密[和压缩]的示例:


    RMAN> connect target <ORACLE_SID>/<SYS pwd>
    RMAN> set encryption on;
    RMAN> backup [as compressed backupset] database;

    无论使用 TDE 主加密密钥还是密码短语对文件进行加密,对发送到磁盘的 RMAN 备份进行加密都需要 Advanced Security 选件的许可。


  • 可否使用 Oracle Secure Backup 对发送至磁盘的备份进行加密?

    不能。不过,Oracle RMAN 可与 Oracle Advanced Security 一起使用,对发送至磁盘的数据库备份进行加密。这需要 Oracle Advanced Security 选件的许可。


  • 可传输表空间可否与 TDE 表空间加密协同工作?

    可以,不过这需要将包含主密钥的钱夹复制到辅助数据库。如果移动表空间但不提供主密钥,在访问表空间数据时,辅助数据库将返回错误。


  • 压缩可否与 TDE 协同工作?

    可以。数据块在压缩后进行加密,因此使用 TDE 表空间加密的客户可获得压缩(标准压缩、高级压缩以及 Exadata 混合列压缩 (EHCC))的全部好处。使用 TDE 列加密的客户只能在不加密的表列上获得压缩的全部好处。使用 TDE 列加密的各个表列只能获得很低的压缩水平,因为它们是在 SQL 层进行加密之后再进行高级压缩处理。


  • TDE 可否与 Data Guard、Streams 和 Oracle Golden Gate 协同工作?

    可以。当 TDE 用于 Data Guard 物理备用数据库(10gR2 及更高版本)时,在向辅助数据库传输数据的过程中加密数据在日志文件中仍保持加密状态,此时可以选择使用 ASO 网络加密在传输过程中对磁盘上未加密的数据进行加密。请参阅 Metalink 说明 749947.1 了解如何配置 ASO 自带的网络加密,并参阅 Metalink 说明 1143443.1 了解如何配置基于 SSL 的加密。对此,必须将包含主密钥的钱夹复制到全部物理备用数据库站点并打开该钱夹,不管是仅应用重做日志、以只读方式打开、在 Active Data Guard 中打开(只读和应用重做日志),还是进行角色转换(切换或故障切换)都是如此。

    当 TDE 用于 Data Guard 逻辑备用数据库 (11gR1) 时,必须将包含主密钥的钱夹复制到辅助站点并打开该钱夹,以便 SQL Apply 可以对从日志文件中读取的数据进行解密。在将传入数据写入逻辑备用数据库时,可以使用同样的主加密密钥对数据进行加密。加密数据在日志文件中保持加密状态,并且在日志文件被传送到辅助数据库的传输过程中仍保持加密状态;Oracle 网络加密是可选的。请参阅 Metalink 说明 749947.1 了解如何配置 ASO 自带的网络加密,并参阅 Metalink 说明 1143443.1 了解如何配置基于 SSL 的加密。

    当 TDE 与 11gR1 中的 Streams 一起使用时,在活动数据库之间以明文传输数据,以允许数据转换(字符集、数据库版本、平台等)。当无法到达接收端且需要临时存储数据时,加密列以加密形式存储在磁盘上。在 11gR1 之前的数据库版本中,Streams 将加密列视为"不受支持的数据类型",因此跳过这些表。

    Oracle Golden Gate 版本TDE 列加密TDE 表空间加密
    11.1.1.1 之前的版本 对所有 Oracle 数据库版本提供部分支持,支持两者同用的前提是相应表具有主键或唯一索引,并且加密列为:
    • CHAR 或 VARCHAR2 数据类型
    • 不是表的主键
    不支持
    11.1.1.1 Oracle Database 10.2.0.5 和 11.2.0.2 中内置的 Golden Gate 11.1.1.1 支持 TDE 加密;在 11.1.0.7 中则需要补丁 9409423

    可以使用 blowfish 或 SSH 端口转发来加密流量。


  • 是否有数据库特性不能与 TDE 列加密协同工作?

    TDE 表空间加密对表空间中存储的所有内容进行加密,不会与任何其他数据库特性冲突。TDE 列加密是在数据经过 SQL 层时对数据进行透明的加密和解密。Oracle 的某些特性会绕过 SQL 层,因此不能利用 TDE 列加密,比如以下特性:

    • 物化视图日志(Oracle 11g 第 2 版本支持该特性)
    • 数据仓库的同步和异步更改数据捕获 (CDC)
    • 可传输表空间
    • LOB(从 11gR1 起支持 SecureFiles)
    • Streams(从 11gR1 起支持该特性)

    1. 可否使用带有直接路径的 SQLLoader 将数据加载到包含加密列的表中?

      可以。如果目标表包含加密列,数据将在加载时进行加密。以下简单示例说明了如何使用带有直接路径的 SQLLoader。只需将 ulcase6.sql 中的一行从


      sal number(7,2),

      更改为


      sal number(7,2) encrypt,

      并使用 SQLLoader 的正确语法:


      $ sqlldr USERID=scott/tiger CONTROL=ulcase6.ctl LOG=ulcase6.log DIRECT=TRUE

  • 使用 TDE 列加密对敏感信息进行加密后,为什么有时仍能看到明文数据?

    这种情况与即使已删除表或文件、但仍然会在磁盘上看到数据的情况相同。在一个表的生命周期内,数据可能会在表空间内分段、重新整理、排序、复制和移动,这会在数据库文件中留下数据的"幽灵副本"。加密现有列时,仅对新的"有效"副本加密,而在"幽灵副本"中留下较旧的明文版本。如果绕过数据库的访问控制而直接访问包含表空间的数据文件(例如,使用十六进制编辑器),那么在这些块被数据库覆盖之前,有时就会看到旧的明文值。为了尽可能降低此等风险,请遵循下面的建议:

    1. 在新的数据文件中创建一个新的表空间 (CREATE TABLESPACE ... )
    2. 对原始表空间和数据文件中的明文值进行加密 (ALTER TABLE ...ENCRYPT )
    3. 对包含加密列的所有表执行第 2 步
    4. 将原始表空间中的所有表移到新的数据文件中 (ALTER TABLE ...MOVE... )
    5. 删除原始表空间 (DROP TABLESPACE ),不要使用 "and datafiles" 参数,Oracle 推荐对操作系统级操作使用更有力的方法,参见第 6 步
    6. 针对您的平台使用 "shred" 或其他 OS 命令,以便在 OS 级别上删除旧数据文件

    建议您使用第 6 步操作来降低数据库文件出现幽灵副本的概率,不论这些副本是由操作系统生成还是由存储固件生成。


  • 如何更改(轮换、更新)加密密钥?

    表 C:密钥更新功能(Oracle 钱夹)
    数据库版本TDE 列加密TDE 表空间加密
    主加密密钥各个表密钥主加密密钥各个表空间密钥
    10gR2 不适用 不适用
    11gR1 () ()
    11gR2 ()

    (*):可以将内容从一个加密表空间移到一个新的加密表空间,在新的表空间中使用新的表空间密钥进行加密。

    TDE 采用两层密钥机制。在对某个现有应用表列进行 TDE 列加密时,系统会创建一个新的表密钥并将该密钥存储在 Oracle 数据字典中。在使用 TDE 表空间加密时,系统会将各个表空间密钥存储在底层 OS 文件头部。表密钥和表空间密钥使用 TDE 主加密密钥进行加密。主加密密钥在 TDE 初始化时生成并且存储在数据库之外的 Oracle 钱夹中。主密钥和表密钥都可以依据公司安全策略单独进行更改(轮换、更新)。表空间密钥不能更新(轮换),对此的变通方法是将数据移动到新的加密表空间。Oracle 建议在每次主密钥更改前后对钱夹进行备份。

    更改钱夹密码不会更新 TDE 主加密密钥。


  • 如何快速加密超大型表(包含数十亿行)中的列?

    对现有表中的列进行加密是一种"更新"操作,允许对该表进行读取访问,而不允许进行其他 DML 操作。由于有数十亿行,这一可用性有限的窗口会持续很长时间。不过 Oracle 数据库提供了一个成熟的高可用性特性 -- 联机表重定义,利用该特性,仅需要一个持续时间非常短的窗口对表进行独占式锁定。该时间长度与表的大小及重定义的复杂性无关,并且对用户和应用是完全透明的,不会导致任何数据损失。


  • 如何将明文应用表空间的内容迁移到加密表空间中?

    • 使用"dbms_metadata.get_ddl"提取用于创建原始应用表空间的 DDL 并将输出另存为一个 SQL 脚本。
    • 在每个"create tablespace"语句中添加"ENCRYPTION DEFAULT STORAGE(ENCRYPT)"(无需更改 SIZE 参数,因为 TDE 表空间加密不会增加存储需求)
    • 用 Data Pump (expdp) 导出整个数据库,或拥有应用表空间的模式
    • 用"with contents and datafiles"删除应用表空间。
    • 运行 SQL 脚本创建加密应用表空间,其他特性保持不变。
    • 用 Data Pump (impdp) 导入转储文件。

  • TDE 可否将其主加密密钥存储到使用 PKSC11 接口的外部设备中?

    从 Oracle Database 11g 第 2 版起,Oracle Advanced Security 透明数据加密 (TDE) 客户可以选择将 TDE 主加密密钥存储到使用 PKCS11 接口的外部设备中。在此配置下,主密钥直接存储在第三方设备中,而非所含 Oracle 钱夹中(注意:Oracle 钱夹是大多数 TDE 客户使用的基于 PKCS12 文件的密钥库)。

    使用 PKCS11 时,由第三方供应商提供存储设备、PKCS11 软件客户端库、设备与 PKCS11 客户端(在数据库服务器上运行)之间的安全通信、身份验证、审计及其他相关功能。并且由供应商负责测试和确保 TDE 主加密密钥在各种数据库服务器环境和配置下的高可用性。客户应与设备供应商联系,获得帮助以解决任何相关问题。


Posted by enmotech at 10:39 AM | Permalink | modb.pro (15)

July 22, 2020

CRM 王者之战:四十年的茅台和二十年的 Salesforce-墨天轮

墨天轮原文链接:https://www.modb.pro/db/27673

昨天写了一篇 Salesforce 超越 Oracle:四十年的甲骨文和二十岁的SaaS之王,有朋友说如果是 40年的茅台,那会是什么价?

昨天的一篇 Salesforce 超越 Oracle:四十年的甲骨文和二十岁的SaaS之王,有朋友说如果是 40年的茅台,那会是什么价?

这个问题问倒我了。还是看看数据吧,从6个月数据来看,茅台股价涨幅 60%,而 Salesforce 涨幅仅仅 4%,也就是说如果年初买了茅台的股票,已经有 60%的涨幅了:
PIC 2.jpg

注意,图中的 Salesforce 数据单位实际上是美元,茅台的标记是 CNY。

从市值看,茅台 2.15万亿人民币,Salesforce 市值 1696.94 亿美元,折合 1.19 万亿人民币。
从人员看,茅台 2.7 万员工,Salesforce 则有 4.9 万员工。

茅台用一半的员工,实现了两倍 Salesforce 的市值!
你说茅台不可复制吧,可是酒类的竞争平台成百上千,远远高于软件市场吧?

从长期来看成长性,茅台是 681% 的增长,而 Salesforce 则是 154%:
PIC 1.jpg

其他的我也不知道了,40年的茅台,一瓶会卖多少钱?

Posted by enmotech at 12:04 PM | Permalink |

循序渐进 openGauss : 构建一个基本的函数 Loop 测试Update循环-墨天轮

墨天轮原文链接:https://www.modb.pro/db/28009

在数据库的测试实验中,我们竟成需要通过循环进行基本的功能验证测试,在 Oracle 中通过 for ... Loop 循环,同样可以在 openGauss 中实现。

在数据库的测试实验中,我们竟成需要通过循环进行基本的功能验证测试,在 Oracle 中通过 for ... Loop 循环,同样可以在 openGauss 中实现。

首先构建一个测试表:

postgres=# create table enmo as select row_number() OVER (ORDER BY name) id ,name from pg_settings;
INSERT 0 542
postgres=# select * from enmo where id < 10;
 id |              name              
----+--------------------------------
  1 | DateStyle
  2 | FencedUDFMemoryLimit
  3 | IntervalStyle
  4 | RepOriginId
  5 | TimeZone
  6 | UDFWorkerMemHardLimit
  7 | acce_min_datasize_per_thread
  8 | acceleration_with_compute_pool
  9 | advance_xlog_file_num
(9 rows)

创建一个包含一定功能的 Loop 函数:

postgres=# create or replace function enmoloop(em1 integer[],em2 bigint) returns 
postgres-# void AS $$
postgres$# declare ini integer;
postgres$# declare num integer;
postgres$#   begin
postgres$#   ini :=1;
postgres$#   num = 1;
postgres$#   for ini in 1..em2 loop 
postgres$#     UPDATE enmo SET id=em1[num] + 2020 WHERE id = ini;
postgres$#     num = num +1;
postgres$#     if (num>6) then
postgres$#       num = 1;
postgres$#     end if;
postgres$#   end loop;
postgres$#  end;
postgres$# $$ LANGUAGE plpgsql;
CREATE FUNCTION

调用这个函数:

postgres=# select enmoloop(array[1,4,5,6,7,8],1000);
 enmoloop 
----------
 
(1 row)

检查数据情况:

postgres=# select * from enmo where id < 10;
 id | name 
----+------
(0 rows)

postgres=# select * from enmo where id < 2022;
  id  |              name               
------+---------------------------------
 2021 | DateStyle
 2021 | acce_min_datasize_per_thread
 2021 | allow_concurrent_tuple_update
 2021 | archive_timeout
 2021 | audit_dml_state
 2021 | audit_grant_revoke
 2021 | audit_space_limit
 2021 | autoanalyze
 2021 | autovacuum_io_limits
...

在 openGauss 和 Oracle 的上手实践中,对于 DBA 们事实上,是非常友好的。

Posted by enmotech at 11:59 AM | Permalink | modb.pro (15)

近期发表

  • Oracle发布7月份安全公告,360安全大脑测绘云再获Oracle官方致谢-墨天轮 - July 22, 2020
  • Oracle 数据库后台进程列表大全(更新到 19c)-墨天轮 - July 21, 2020
  • Oracle创新版本计划:仅提供两年高级支持 21c 排上发布日程-墨天轮 - July 21, 2020
  • 【2020数据技术嘉年华】问卷:签名图书,限量T恤,等你来拿! - July 17, 2020
  • 中国移动国产OLTP数据库中标公告:南大金仓阿里,万里开源中兴分获大单 - July 17, 2020
  • 循序渐进 openGauss : pg_relation_filepath 获取表文件的具体位置-墨天轮 - July 17, 2020
  • 循序渐进 openGauss : 通过 openGauss 的 Docker 环境快速入门-墨天轮 - July 12, 2020
  • Oracle 12c 新特性:RAC 中 split brain 的节点权重驱逐法-墨天轮 - July 12, 2020
  • 快讯:Oracle公司宣布面向企业级提供 Autonomous 自治数据库 - July 9, 2020
  • 墨天轮资源:Oracle 自治数据库私有云发布会PPT及相关技术信息 - July 9, 2020


  • CopyRight © 2004 ~ 2012 eygle.com, All rights reserved.