
# CREATE SERVER
#### 功能描述
创建一个外部服务器。
外部服务器是存储OBS服务器信息或其他同构集群信息的载体。
#### 注意事项
默认只有系统管理员才可以创建外部服务器，否则需要对所使用的FOREIGN DATA WRAPPER授权才可以创建，授权语法为：
```
GRANT USAGE ON FOREIGN DATA WRAPPER fdw_name TO username
```
其中fdw_name为FOREIGN DATA WRAPPER的名称，username为创建SERVER的用户名。
OPTIONS中的敏感字段（如password、secret_access_key）在使用多层引号时，语义和不带引号的场景是不同的，因此不会被识别为敏感字段进行脱敏。
#### 语法格式
```
CREATE SERVER server_name 
    FOREIGN DATA WRAPPER fdw_name
    OPTIONS ( { option_name ' value ' } [, ...] ) ;
```
#### 参数说明
- **server_name**
  server的名称。
  取值范围：长度必须小于等于63。
  
- **FOREIGN DATA WRAPPER fdw_name**
  指定外部数据封装器的名称。
  取值范围：fdw_name是数据库初始化时系统创建的数据封装器，对于其他同构集群，fdw_name为gc_fdw。还可以创建dist_fdw、file_fdw、log_fdw。
  
- **OPTIONS ( { option_name ' value ' } \[, ...\] )**
  用于指定外部服务器的各类参数，详细的参数说明如下所示。
  - encrypt 是否对数据进行加密，该参数仅支持type为OBS时设置。默认值为on。
    取值范围：
    - on表示对数据进行加密，使用HTTPS协议通信。
    
    - off表示不对数据进行加密，使用HTTP协议通信。
     
  
  - access_key OBS访问协议对应的AK值（OBS云服务界面由用户获取），创建外表时AK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。
    
  
  - secret_access_key OBS访问协议对应的SK值（OBS云服务界面由用户获取），创建外表时SK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。
    
   
 
#### 示例
建立一个my_server，其中file_fdw为数据库中存在的foreign data wrapper。
```
--创建my_server。
openGauss=# CREATE SERVER my_server FOREIGN DATA WRAPPER file_fdw;
--删除my_server。
openGauss=# DROP SERVER my_server;
```
建立另外一个同构集群的server，其中gc_fdw为数据库中存在的foreign data wrapper。
```
--创建server。
openGauss=# CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS 
   (address '10.146.187.231:8000,10.180.157.130:8000' ,
  dbname 'test', 
  username 'test', 
  password 'xxxxxxxx'
);
--删除server。
openGauss=# DROP SERVER server_remote;
```
#### 相关链接
[ALTER SERVER](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0334.html#ZH-CN_TOPIC_0000002187368708)， [DROP SERVER](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0411.html#ZH-CN_TOPIC_0000002187528468)
