更新时间:2024-05-07 GMT+08:00

ALTER SERVER

功能描述

增加、修改和删除一个现有server的参数。现有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的参数如下所示:

  • server_name

    所修改的server的名称。

  • new_version

    修改后server的新版本名称。

  • 修改server所支持的OPTIONS如下所示:
    • encrypt

      是否对数据进行加密,该参数仅支持在type为OBS时设置。默认值为off。

      取值范围:

      • on表示对数据进行加密。
      • off表示不对数据进行加密。
    • access_key

      OBS访问协议对应的AK值(OBS云服务界面由用户获取)。该参数仅支持type为OBS时设置。

    • secret_access_key

      OBS访问协议对应的SK值(OBS云服务界面由用户获取)。该参数仅支持type为OBS时设置。

  • new_owner

    修改后server的新拥有者。更改所有者,你必须是外部服务器的所有者并且也是新的所有者角色的直接或者间接成员,并且你必须对外部服务器的外部数据封装器有USAGE权限。

  • new_name

    修改后server的新名称。

示例

1
2
3
4
5
6
7
8
9
--创建my_server。
gaussdb=# CREATE SERVER my_server FOREIGN DATA WRAPPER log_fdw;
 
--修改外部服务的名称。
gaussdb=# ALTER SERVER my_server 
    RENAME TO my_server_1;
 
--删除my_server_1。
gaussdb=# DROP SERVER my_server_1;

相关链接

CREATE SERVERDROP SERVER