geoscene基于瀚高数据库postgis启用地理数据库

0
分享 2025-03-10
geoscene支持多种数据库创建对应的地理数据库模型,本文针对瀚高数据库进行实践,软件版本是geoscene pro4.1、hgdb-see-4.5.8-db43858.x86_64,操作系统是Kylin Linux Advanced Server V10 (Lance),经过测试证明适配良好。

1741570683444.jpg

1.数据库环境部署
安装部署瀚高数据库可参考官方文档:https://www.highgo.com/document/zh-cn/way/Enterprise_alone1.html
1.1配置国密sm3校验方式
数据库部署完成后,要注意安全版的瀚高数据默认加密算法是国密SM3,这种方式需要客户端配合安装或者拷贝对应的依赖文件(如果觉得sm3非必须,也可以参考1.2更改校验方式为MD5)。可以看到pg_hba.conf中对应的METHOD列默认都是sm3。
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all sm3
# IPv4 local connections:
# host all all 127.0.0.1/32 sm3
host all all 0.0.0.0/0 sm3
hostnossl all all 127.0.0.1/32 sm3
hostssl all all 127.0.0.1/32 cert
# IPv6 local connections:
host all all ::1/128 sm3
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all sm3
host replication all 127.0.0.1/32 sm3
host replication all ::1/128 sm3
主要是需要客户端配置,pro和server都定制了对应的客户端依赖包,不同的操作系统对应的包不同,具体可以根据自己的环境联系瀚高官方获取对应的依赖包。因为该我的测试环境pro和server都在win上,所以使用的是dll文件,一共5个文件。

1741570808775.jpg

将这个5个文件替换到pro的bin目录下(默认安装路径C:\Program Files\GeoScene\Pro\bin),替换前最好备份下原有被替换的文件,注意有些文件可能不存在,替换后重启下pro。

server同样将这5个文件替换到framework\runtime\ArcGIS\bin目录下(默认安装路径C:\Program Files\GeoScene\Server\framework\runtime\ArcGIS\bin),替换前最好先备份下原有被替换的文件,注意有些文件可能不存在,替换后重启下server。
1.2更改校验方式为MD5
安全版的瀚高数据默认加密算法是国密SM3,但是这种方式需要客户端配合安装或者拷贝对应的依赖文件,为了方便客户端连接,我这里先改成MD5,主要是修改三权用户的加密算法并更改密码。具体步骤可以参考官方文档:https://www.highgo.com/document/zh-cn/way/SM3_MD5.html
[root@host ~]# psql -U sysdba -d highgo

highgo=# alter system set password_encryption ='md5';
highgo=# set password_encryption ='md5';
highgo=# alter user sysdba with password 'Hello@1234';
highgo=# \q
[root@host ~]# psql -U syssso -d highgo
highgo=# set password_encryption ='md5';
highgo=# alter user syssso with password 'Hello@1234';
highgo=# \q
[root@host ~]# psql -U syssao -d highgo
highgo=# set password_encryption ='md5';
highgo=# alter user syssao with password 'Hello@1234';
highgo=# \q
[root@host ~]# psql -U test -d highgo
highgo=# set password_encryption ='md5';
highgo=# alter user test with password 'Hello@1234';

highgo=# \q
1.3配置允许所有地址连接
另外数据库部署完成之后默认是只能本机连接,因此需要对配置文件pg_hba.conf和postgresql.conf中的相关配置进行修改,以下是修改完成后的pg_hba.conf文件
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
# host all all 127.0.0.1/32 sm3
host all all 0.0.0.0/0 md5
hostnossl all all 127.0.0.1/32 md5
hostssl all all 127.0.0.1/32 cert
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
postgresql.conf中的设置为允许所有地址连接
listen_addresses = '*'          # what IP address(es) to listen on;
最后重启数据库,就可以在客户端进行连接了。
2.启用企业级地理数据库
这里采用postgis的模式,首先需要安装好postgis环境,具体流程就不详细介绍了。目前只能采用启用企业级地理数据库的方式,即先在数据库中创建好对应的角色和库,然后使用pro进行启用。直接使用pro的创建企业级地理数据库工具会有问题。
使用sysdba用户登录到数据库
psql -h 192.168.0.140 -d highgo -U sysdba -p 5866
创建一个rds_superuser角色
create role rds_superuser;
创建一个sde用户,注意这里用户名必须叫sde
create user sde with password 'Hello@1234';
创建一个数据库
create database geotestdb with owner=sde;
由于安全版中三权分立,sysdba,syssao,syssso 三个用户,因此创建扩展需要关闭hg_sepofpwoers参数,使用syssso用户登录到highgo库中,执行:
select set_secure_param('hg_sepofpowers','off');
然后重启下数据库,再使用sysdba用户登录到geotestdb安装postgis插件
create extension postgis;
再创建一个sde的schema
create schema sde authorization sde;
在pro上创建数据库连接

1741571110819.jpg

启用企业级地理数据库

1741571148679.jpg

至此地理数据库模型就已经创建好了。
 
 

0 个评论

要回复文章请先登录注册