返回首页

gbase数据、南大通用产品文档:GBase8s修复问题

更新日期:2024年09月11日

本版本修复了以下问题:
RM #10:执行“INSERT INTO table SELECT FIRST number DISINCT columns”语句返
回非预期的结果。
RM #129:捕捉 143 错误时数据库暂挂,不可使用。
RM #195:某个数据库安全漏洞。
RM #213:由于 CM 虚拟内存溢出导致数据库无法启动。
RM #269:由于 SDS 节点异常导致主节点写入阻塞。
RM #292:建立视图的语句中包含多个 UNION ALL 时,数据库内 存溢出从而
宕机。
RM #329:数据库配置的字符集为 GB18030-2000 时,使用 Arcgis 连接数据
库报错的问题。
RM #333:视图中无法使用 Rowid。
RM #364:字符集为 GB18030-2000 的数据库返回的报错信息不支 持中文。
RM #373:多次 Merge 操作导致数据库宕机。
RM #378:当数据库的字符集环境为 GB18030-2000 时,
不支持创建 Java UDR。

RM #390:在给表和字段添加注释时,操作已执行成功,但仍报以下错误-“未
知错误消息”。
RM #396:WHERE 条件中包含 IN 查询时执行速度较慢。
RM #439:SDS 集群环境中执行 dbexport 导出操作时报语法错。
RM #395:某条 SQL 在 SDS 和 RSS 上执行时,返回错误229-140。
RM #409:在SELECT 语句的 WHERE 子句的 IN 条件子查询中不支持使用
ORDER BY 排序。
RM #412:JDBC 连接 CM 层时速度较慢。
RM #439:在某种情况下执行 dbexport 导出数据库报语法错误。

GBase JDBC 连接数据库异常
通过GBase JDBC 试图连接一个数据库时,得到如下的异常:
SQLException: Server configuration denies access to data source
SQLState: 08001
VendorError: 0
什么原因?通过GBase 命令行管理工具连接正常。
回答:
GBase JDBC 必须使用TCP/IP 套接字来连接GBase,由于Java 不支持Unix
Domain 套接字。因此,当GBase JDBC 连接 GBase 时,GBase 中的安全管理器
会使用它的授权表来决定连接是否被允许。
用户必须增加授权来允许这种情况。下面的例子会告诉用户如何来做(不
是最安全的)

从sqlcli 命令行客户端,
作为一个可以授权的用户登录,
利用如下的命令:

GRANT ALL PRIVILEGES ON [dbname].* to '[user]'@'[hostname]'
identified by '[password]'
以用户的数据库的名字代替[dbname],以用户的用户名代替[user] ,用要
连接GBase JDBC 的主机名称代替[hostname],并用用户密码代替[password]。
注意,对于从本地主机进行连接的主机名部分,RedHat Linux 将失败。在这种
情况下,
对于[hostname]值用户需要使用localhost.localdomain。
在这之后使
用FLUSH PRIVILEGES 命令。

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 181 -
注意:
除非添加了“—host”标志,并为主机使用了不同于localhost 的其他设
置,否则将无法使用GBase 命令行客户端测试连通性。如果用户使用特定的主
机名localhost,那么sqlcli 命令行客户端会使用Unix
Domain 套接字。如果
用户测试与localhost 的连通性,那么使用“127.0.0.1”来作为主机名。
警告:
如果用户不明白GRANT 是做什么的,或它如何工作,用户应该在试图改变
权限之前阅读并理解GBase 手册中的“GBase 访问权限系统”以及“常规安全
问题”两节。
在GBase 中不恰当地改变权限和许可,可能会使服务器不再具有最佳的安
全性能。

重载属性。根据给定的列索引,返回指定列的原始列值。

重载列表
1) 根据给定的序号,获取指定列值。
Item(Int32)
2) 根据给定的字符串,获取指定列值。
Item(String)