更新时间:2026-10-21 GMT+08:00
ALTER SERVER
功能描述
增加、修改和删除指定服务器的参数,可以从pg_foreign_server系统表中查询已有的服务器。
注意事项
- 只有SERVER的所有者或者被授予了SERVER的ALTER权限的用户才可以执行ALTER SERVER命令,系统管理员默认拥有该权限。但要修改SERVER的所有者,当前用户必须是该SERVER的所有者或者系统管理员,且该用户是新所有者角色的成员。
- OPTIONS中的敏感字段(如password、secret_access_key)在使用多层引号时,语义和不带引号的场景是不同的,因此不会被识别为敏感字段进行脱敏。
语法格式
- 修改外部服务的参数
1 2
ALTER SERVER server_name [ VERSION 'new_version' ] [ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ];
在OPTIONS选项里,ADD、SET和DROP指定要执行的操作,未指定时默认为ADD操作。option和value为对应操作的参数。

- 修改外部服务的所有者
1 2
ALTER SERVER server_name OWNER TO new_owner;

- 修改外部服务的名称
1 2
ALTER SERVER server_name RENAME TO new_name;

参数说明
- server_name
需要修改的外部服务器的名称。
- new_version
修改后,外部服务器的新版本名称。
- OPTIONS
更改该服务器的选项,选项名需满足唯一约束。ADD、SET和DROP为指定执行的动作,如果未指定,默认为ADD。名称和值也会使用该服务器的外部数据封装器库进行验证。
- new_owner
修改后服务器的新拥有者。
更改服务器的所有者,当前用户必须是外部服务器的所有者并且也是新的所有者角色的直接或者间接成员,并且该用户须对外部服务器的外部数据封装器有USAGE权限。
- new_name
修改后服务器的新名称。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | --创建my_server。 gaussdb=# CREATE SERVER my_server FOREIGN DATA WRAPPER log_fdw; --修改外部服务器的名称。 gaussdb=# ALTER SERVER my_server RENAME TO my_server_1; --创建用户。 gaussdb=# CREATE USER jack PASSWORD '********'; --修改外部服务器的所有者。 gaussdb=# ALTER SERVER my_server_1 OWNER TO jack; --增加外部服务器中dbname、dbuser信息。 gaussdb=# ALTER SERVER my_server_1 OPTIONS(ADD dbname 'test',dbuser' test_user'); --查询外部服务器信息。 gaussdb=# SELECT * FROM pg_foreign_server WHERE srvname='my_server_1'; srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions -------------+----------+--------+---------+------------+--------+-------------------------------- my_server_1 | 22060 | 11826 | | | | {dbname=test,"dbuser= test_user"} (1 row) --修改外部服务器中dbname名称为‘db_test’。 gaussdb=# ALTER SERVER my_server_1 OPTIONS (SET dbname 'db_test'); --查询外部服务器信息。 gaussdb=# SELECT srvname,srvoptions FROM pg_foreign_server WHERE srvname='my_server_1'; srvname | srvoptions -------------+----------------------------------- my_server_1 | {dbname=db_test,"dbuser= test_user"} (1 row) --删除外部服务器中dbname信息。 gaussdb=# ALTER SERVER my_server_1 OPTIONS (DROP dbname); --查询外部服务器信息。 gaussdb=# SELECT srvname,srvoptions FROM pg_foreign_server WHERE srvname='my_server_1'; srvname | srvoptions -------------+-------------------- my_server_1 | {"dbuser= test_user"} (1 row) --删除my_server_1。 gaussdb=# DROP SERVER my_server_1; --删除用户。 gaussdb=# DROP USER jack; |
相关链接
父主题: A