返回首页

gbase数据、南大通用产品文档:GBase8s符合 GBase FIPS 的安全软件包

更新日期:2024年09月11日

GBase 1.4.2 SR1a JRE 或后来的版本包括一个称为 GBASEJCEFIPS 的 JCE 符合“联邦信
息处理标准”
(FIPS)
140-2 软件包。
作为 JCE 提供程序来实现 GBASEJCEFIPS 软件包,
来通过 JCE 框架 API 支持 FIPS 批准的密码操作。可随同简单的 CSM 或随同加密
CSM 来使用 GBASEJCEFIPS 软件包。
要使用 FIPS 软件包,请将 GBASEJCEFIPS 提供程序添加至 JVM java.security 文件中的
安全提供程序列表,其位于安装 JRE 的 jre/lib/ext 目录中。
必须以比 java.security 文件中任何非 FIPS 安全提供程序更高的优先顺序,来指定
GBASEJCEFIPS 提供程序。该顺序是基于 1 的,意味着 1 是最优先的,然后是 2,依此
类推。
例如:
security.provider.1=com.gbase.crypto.fips.provider.GBASEJCEFIPS
security.provider.2=com.gbase.crypto.fips.provider.GBASEJCE
请确保 GBASEJCEFIPS 比 GBASEJCE 提供程序有更高的优先顺序。
无需对 GBase 8s JDBC Driver 进行任何应用程序更改,即可使用符合 FIPS 的密码软件包。


GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 57 -
要了解关于配置加密服务提供程序的更详细信息,请在前面罗列的网站参
阅 GBase Developer Kit 和 Runtime Environment 的 GBase JRE 资料。

功能
记录所有执行过的select 语句的功能。
参数取值含义说明

0 是关闭;

1 是开启。
默认为0。
表6- 69 参数值范围说明表
默认值
最小值
最大值
0
0
1

CONTAINS 函数
使用SELECT 语句来查询文本内容,其中使用了CONTAINS()函数作为查询条件,
对设置了全文索引的列内容进行快速匹配。
1.
查询语法:
SELECT query_column FROM table_name
WHERE CONTAINS (column_name, Query Content[, score_flag])
2.
参数说明如下:

query_column:需要显示的查询结果列

table_name:表名

CONTAINS (column_name, Query Content[, score_flag]):查询条件

column_name:查询列,也即创建了全文索引的列名,不支持多列查询。

Query Content:需要查找的内容,为字符型,需要使用'...'引用查询内容。
内容支持文本查询、逻辑运算查询表达式、NEAR 函数等,具体说明见后
面章节。

score_flag:SCORE 标号,可选项, 如不填写,则表示不输出评估值, 应
与SCORE 函数一起使用,具体可参考“SCORE 评估函数说明”章节。
说明
当一条查询语句中含有多个contains 函数条件时,score_flag 参数值应互不相同,
否则会报语法错误信息:
Incorrect arguments to CONTAINS FUNCTION - SCORE FLAG COLLISION。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 941
示例

示例1:查询有多少条短信包含“南大通用”这4 个字。
gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通用');
+----------+
| COUNT(*) |
+----------+
| 1 |
+----------+
1 row in set

gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通用', 0);
+----------+
| COUNT(*) |
+----------+
| 1 |
+----------+
1 row in set

示例2:查询包含南开的短信并且按照score 分值倒排序。
gbase> SELECT score(1) AS score,MB_Text FROM sms WHERE contains(MB_Text, '南开
',1) ORDER BY score DESC;
+-------+------------------------------------------------------+
| score | MB_Text |
+-------+------------------------------------------------------+
| 1537 | 周末去天津博物馆参观,在南开区南门外大街公交车站集合 |
| 1533 | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 |
+-------+------------------------------------------------------+
2 row in set
说明
contains 函数用于where 条件中有效,不支持在having 条件中搜索,即在having 条件
中无效。

示例3:举例如下:
gbase> SELECT MB_TEXT FROM sms WHERE contains(MB_Text, '南大');
+--------------------------------------------------------+
| MB_Text |
+--------------------------------------------------------+
| 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 |
| 晚上去南大上英语课,在南大主楼115 房间 |
| 周末去天津博物馆参观,在南开区南门外大街公交车站集合 |

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 942
| 南大通用数据技术股份有限公司地址:... |
+--------------------------------------------------------+
4 rows in set (Elapsed: 00:00:00.02)

gbase> SELECT MB_TEXT FROM sms GROUP BY MB_TEXT having contains(MB_Text, '南大
');
+---------------------------------------------------------------+
| MB_Text |
+---------------------------------------------------------------+
| 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 |
| 天津大学开设考研培训班,学期3 个月,每周六、日上课,欢迎报名 |
| 本小学为6 到12 岁儿童开办语文、数学和英语培训班 |
| 周末去天津博物馆参观,在南开区南门外大街公交车站集合 |
| 明天去公司办公柜里查找合同文件、档案和报销凭证。 |
| 晚上去南大上英语课,在南大主楼115 房间 |
| 本公司办理各种文*凭、证/件,绝对保真,联系电话:022-30088200。|
| 周六上午9 点去天津水上公园,在东门集合,对着天津天塔 |
| 南大通用数据技术股份有限公司地址:... |
+---------------------------------------------------------------+
9 rows in set
从上面例子可以看出,contains 函数并没有起作用,包含南大和不包含南大的
内容都搜索出来了。
Contains 函数只能用在Where 子句中,如果包含在其他类型子句则报告错误:
contains function can ONLY in WHERE clause
例如:
gbase> SELECT contains(a ,'通用') FROM t WHERE contains(a ,'中国') AND
score(0) >10;
ERROR 1149 (42000): contains function can ONLY in WHERE clause