
# DBE_PLDEVELOPER.gs_source
用于记录PL/SQL对象（存储过程、函数、包、包体）相关信息，如[表1]所示。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- gs_source表中只记录用户定义的原始对象语句，即使用户使用了ALTER改变了创建的SCHEMA或者名字，gs_source表中的信息也不会发生变化，如果用户更改了对象的SCHEMA或者名字，用户在删除对象后，对象会从gs_source表中被删除。
- gs_source表中的owner表示创建的用户，不是用户创建存储过程或package时指定的用户。
- 设置GUC参数behavior_compat_options="skip_insert_gs_source"后，PL/SQL对象（存储过程、函数、包、包体）相关信息将不在gs_source中记录。
- gs_source权限与pg_catalog下的系统表保持一致（系统管理员与普通用户不允许DROP、ALTER、DELETE、UPDATE、INSERT，允许SELECT），利用GUC参数allow_system_table_mods控制操作gs_source的权限，此GUC参数默认为off，修改此GUC参数生效需要重启数据库。
- 数据库默认情况下没有对gs_source表中设置行级访问控制，如果用户需要使用数据库隔离性特性，请使用如下语句进行添加行级访问控制：
  ```
  ALTER TABLE dbe_pldeveloper.gs_source ENABLE ROW LEVEL SECURITY;
  CREATE ROW LEVEL SECURITY POLICY all_data_rls ON dbe_pldeveloper.gs_source USING(owner = (SELECT oid FROM gs_roles WHERE rolname=current_user));
  ```
  
 
 表1DBE_PLDEVELOPER.gs_source字段 
| **名称** | **类型**  |                     **描述**                     |
|---|---|---|
| id     | oid     | 对象id。                                          |
| owner  | bigint  | 对象创建用户id。                                      |
| nspid  | oid     | 对象的模式id。                                       |
| name   | name    | 对象名。                                           |
| type   | text    | 对象类型（procedure/function/package/package body）。 |
| status | boolean | 是否创建成功。                                        |
| src    | text    | 对象创建的原始语句。                                     |
   
