更新时间:2024-11-12 GMT+08:00
DBE_PLDEVELOPER.gs_source
用于记录PL/SQL对象(存储过程、函数、包、包体)相关信息,如表1所示。
- 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));
父主题: DBE_PLDEVELOPER