
# 普通用户创建或删除GDS/OBS外表语句时报错，提示没有权限或权限不足
#### 问题现象
创建GDS或OBS外表语句时，管理员用户可以执行成功，但普通用户执行时报错"ERROR: permission denied to create foreign table in security mode."。
```
CREATE USER u1 PASSWORD '{password}';
SET current_schema = u;
CREATE FOREIGN TABLE customer_ft
(
    c_customer_sk             integer               ,
    c_customer_id             char(16)              ,
    c_current_cdemo_sk        integer               ,
    c_current_hdemo_sk        integer               ,
    c_current_addr_sk         integer    
)
    SERVER gsmpp_server
    OPTIONS
(
    location 'gsfs://192.168.0.90:5000/customer1*.dat',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    mode 'Normal')
READ ONLY;
ERROR:  permission denied to create foreign table in security mode
```
#### 原因分析
该错误信息说明普通用户没有创建外表的权限。
查询该示例中用户权限：
```
SELECT rolname,roluseft FROM pg_roles WHERE rolname ='u1' ORDER BY rolname desc;
 rolname | roluseft
---------+----------
 u1      | f
(1 row)
```
#### 处理方法
可使用ALTER USER或者ALTER ROLE语法指定USEFT参数赋予角色或用户使用外表的权限。
参数USEFT \| NOUSEFT决定一个新角色或用户是否能操作外表，包括：新建外表、删除外表、修改外表、读写外表。
- 指定USEFT表示角色或用户可操作外表。
- 缺省为NOUSEFT。表示新角色或用户没有操作外表的权限。
请使用数据库管理员用户给普通用户或角色赋予使用外表的权限，示例如下：
```
ALTER USER user_name USEFT;
```
修改用户或角色权限等信息的详细内容请参见[ALTER USER](https://support.huaweicloud.com/sqlreference-dws/dws_06_0149.html)或者[ALTER ROLE](https://support.huaweicloud.com/sqlreference-dws/dws_06_0134.html)。
对普通用户或角色赋予使用外表的权限后即可创建外表。
