使用如下语句连接数据库:
EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];
target可以通过如下方法声明,斜体部分为变量,请根据实际情况进行修改:
- dbname[@hostname][:port]
- tcp:postgresql://hostname[:port][/dbname][?options]
- unix:postgresql://hostname[:port][/dbname][?options]
- 一个包含上述形式之一的SQL字符串
声明连接用户名的方法有以下方式:
- username/password
- username SQLIDENTIFIED BY password
- username USING password
如上所述,参数username以及password可以是一个SQL标识符、一个SQL字符串或一个对字符变量的引用。
connection_name表示连接名,如果一个程序只使用一个连接,则可以省略它。最近打开的连接成为当前连接。
示例:
EXEC SQL CONNECT TO mydb@sql.mydomain.com; EXEC SQL CONNECT TO unix:postgresql://sql.mydomain.com/mydb AS myconnection USER john; EXEC SQL BEGIN DECLARE SECTION; const char *target = "mydb@sql.mydomain.com"; const char *user = "john"; const char *passwd = "secret"; EXEC SQL END DECLARE SECTION; ... EXEC SQL CONNECT TO :target USER :user USING :passwd; /* 或者 EXEC SQL CONNECT TO :target USER :user/:passwd; */
说明:
- 最后一种形式引用了字符变量,在宿主变量章节中将介绍如何在SQL语句中引用C语言变量。
- 连接目标的格式未在SQL标准中说明,因此若要开发可移植的应用,可使用上述最后一个例子的方法将连接目标字符串封装在某个变量里。
- 若连接语句中指定了ip-port,则必须指定username/password,该规则由GaussDB Kernel内核通信认证所决定。若不指定ip-port,则通过本地$PGPORT(UDS协议)进行通信。
须知:
- 若连接语句中指定了ip-port,则必须指定username/password,该规则由GaussDB Kernel内核通信认证所决定。若不指定ip-port,则通过本地$PGPORT(UDS协议)进行通信。
- 若客户连接时使用ssl安全协议,则需要使用tcp:postgresql://hostname[:port][/dbname][?options]连接格式,在options选项中配置sslmode=disable\require。
- 若客户连接时使用ssl安全协议,则需要使用tcp:postgresql://hostname[:port][/dbname][?options]连接格式,在options选项中配置sslmode=disable\require。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




