只有 DBA 或用户 gbasedbt 可以在 SQL 的 ALTER PROCEDURE 、ALTER ROUTINE 、CREATE PROCEDURE 、CREATE PROCEDURE FROM 、CREATE ROUTINE FROM 、DROP PROCEDURE 或 DROP ROUTINE 语句中创建或更改 sysdbopen( ) 或 sysdbclose( )。
您可以设置 sysdbopen( ) 过程,在连接或访问时更改会话的属性,而不更改会话运行的应用程序。如果无法修改应用程序的源代码以设置环境选项或环境变量或包括会话相关的 SQL 语句,例如,因为 SQL 语句包含供应商获取的代码,这将非常有用。
按照以下步骤设置 sysdbopen() 和 sysdbclose() 过程以配置会话属性:
CREATE PROCEDURE oltp_user.sysdbopen()
SET ROLE TO oltp;
SET PDQPRIORITY 5;
SET ENVIRONMENT NOVALIDATE '1';
END PROCEDURE;
CREATE PROCEDURE PUBLIC.sysdbopen()
SET ROLE TO others;
SET PDQPRIORITY 1;
SET ENVIRONMENT
RETAINUPDATELOCKS 'CURSOR STABILITY';
END PROCEDURE