Home

Awesome

go-hdb

Go Reference Go Report Card REUSE status

Go-hdb is a native Go (golang) HANA database driver for Go's sql package. It implements the SAP HANA SQL command network protocol.

For the official SAP HANA client Go support (not this database driver) please see SAP Help Portal.

Installation

go get -u github.com/SAP/go-hdb/driver

Building

To build go-hdb you need to have a working Go environment of the latest or second latest Go version.

Documentation

API documentation and documented examples can be found at https://pkg.go.dev/github.com/SAP/go-hdb/driver.

HANA cloud connection

HANA cloud connection proxy is using SNI which does require a TLS connection. As default one can rely on the root certificate set provided by the host, which already comes with the nessecary DigiCert certificates (CA, G5). For more information on Go tls certificate handling, please see https://pkg.go.dev/crypto/tls#Config.

Assuming the HANA cloud 'endpoint' is "something.hanacloud.ondemand.com:443". Then the dsn should look as follows:

"hdb://<USER>:<PASSWORD>@something.hanacloud.ondemand.com:443?TLSServerName=something.hanacloud.ondemand.com"

with:

Specific root certificate

In case a specific root certificate (e.g. self-signed) would be needed, the TLSRootCAFile DSN parameter needs to point to the location in the filesystem where a root certificate file in 'pem-format' is stored.

Tests

To run the driver integration tests a HANA Database server is required. The test user must have privileges to create database schemas.

Set environment variable GOHDBDSN:

#linux example
export GOHDBDSN="hdb://user:password@host:port"
go test

Using the Go build tag 'unit' only the driver unit tests will be executed (no HANA Database server required):

go test --tags unit

Features

Dependencies

Licensing

SAP SE or an SAP affiliate company and go-hdb contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.