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

- 修改外部服务的所有者。
  ```
  ALTER SERVER server_name 
      OWNER TO new_owner;
  ```
  
- 修改外部服务的名称。
  ```
  ALTER SERVER server_name     
     RENAME TO new_name;
  ```
  
 
#### 参数说明
- **server_name**
  所修改的server的名称。
  
- **new_version**
  修改后server的新版本名称。
  
- **OPTIONS**
  更改该服务器的选项。ADD、SET和 DROP指定要执行的动作。如果没有显式地指定操作， 将会假定为ADD。选项名称必须唯一，名称和值也会使用该服务器的外部数据包装器库进行验证。
  除了libpq支持的连接参数外，还额外提供以下参数：
  - **fdw_startup_cost**
    执行一个外表扫描时的启动耗时估算。这个值通常包含建立连接、远端对请求的分析和生成计划的耗时。默认值为100。取值范围为大于0的实数。
    
  
  - **fdw_typle_cost**
    在远端服务器上对每一个元组进行扫描时的额外消耗。这个值通常表示数据在server间传输的额外消耗。默认值为0.01。取值范围为大于0的实数。
    
    

- **new_name**
  修改后server的新名称。
  
 
#### 示例
```
--创建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 SERVER](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0554.html#ZH-CN_TOPIC_0000002200419278)，[DROP SERVER](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0606.html#ZH-CN_TOPIC_0000002235339601)
