返回首页

gbase数据、南大通用产品文档:GBase8sIN OUT子程序参数给变量赋值

更新日期:2024年09月11日

这个示例将变量new_sal传递给过程adjust_salary。该过程将一个值赋给相应的形式参
数sal。由于sal是一个 IN OUT 参数,变量new_sal在过程结束后保留了赋值。
DECLARE
emp_salary NUMBER(8,2);

PROCEDURE adjust_salary (
emp NUMBER,

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 22 -

sal IN OUT NUMBER,
adjustment NUMBER
) IS
BEGIN
sal := sal + adjustment;
END;
BEGIN
SELECT salary INTO emp_salary
FROM employees
WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE
('Before invoking procedure, emp_salary: ' || emp_salary);
adjust_salary (100, emp_salary, 1000);
DBMS_OUTPUT.PUT_LINE
('After invoking procedure, emp_salary: ' || emp_salary);
END;

--Result:
--Before invoking procedure, emp_salary: 24000
--After invoking procedure, emp_salary: 25000

问题现象
数据库自动执行shrinkspace 回收空间
解决方法:
建议通过外部调用方式来处理,如使用event schedule、crontab 定期执行。

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
119

功能描述
创建统一审计策略。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
845
注意事项
只有poladmin、sysadmin 或初始用户能进行此操作。
需要开启安全策略开关,即设置GUC 参数enable_security_policy=on,审计策略才可以
生效。
语法格式
CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause |
access_audit_clause } [ filter_group_clause ] [ ENABLE | DISABLE ] };

privilege_audit_clause:
PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]

access_audit_clause:
ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]

filter_group_clause:
FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }

DDL 支持:
{ ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW |
LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }

DML 支持:
{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE |
SELECT | TRUNCATE | UPDATE ) }

FILTER_TYPE 支持:
{ APP | ROLES | IP }
参数说明

policy_name

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
846
审计策略名称,需要唯一,不可重复;
取值范围:字符串,要符合标识符的命名规范。

DDL
指的是针对数据库执行如下操作时进行审计,
目前支持:
CREATE、
ALTER、
DROP、
ANALYZE、COMMENT、GRANT、REVOKE、SET、SHOW、LOGIN_ANY、
LOGIN_FAILURE、LOGIN_SUCCESS、LOGOUT。

ALL
指的是上述DDL 支持的所有对数据库的操作。

resource_label_name
资源标签名称。

DML
指的是针对数据库执行如下操作时进行审计,目前支持:SELECT、COPY、
DEALLOCATE、DELETE、EXECUTE、INSERT、PREPARE、REINDEX、TRUNCATE、
UPDATE。

FILTER_TYPE
描述策略过滤的条件类型,包括IP | APP | ROLES。

filter_value
指具体过滤信息内容。

ENABLE|DISABLE
可以打开或关闭统一审计策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。
示例
--创建dev_audit 和bob_audit 用户。
gbase=#CREATE USER dev_audit PASSWORD 'dev@1234';
CREATE USER bob_audit password 'bob@1234';

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
847
--创建一个表tb_for_audit
gbase=#CREATE TABLE tb_for_audit(col1 text, col2 text, col3 text);
--创建资源标签
gbase=#CREATE RESOURCE LABEL adt_lb0 add TABLE(tb_for_audit);
--对数据库执行create 操作创建审计策略
gbase=#CREATE AUDIT POLICY adt1 PRIVILEGES CREATE;
--对数据库执行select 操作创建审计策略
gbase=#CREATE AUDIT POLICY adt2 ACCESS SELECT;
--仅审计记录用户dev_audit 和bob_audit 在执行针对adt_lb0 资源进行的create 操作数据库创
建审计策略
gbase=#CREATE AUDIT POLICY adt3 PRIVILEGES CREATE ON LABEL(adt_lb0) FILTER
ON ROLES(dev_audit, bob_audit);
--仅审计记录用户dev_audit 和bob_audit,客户端工具为psql 和gsql,IP 地址为'10.20.30.40',
'127.0.0.0/24',在执行针对adt_lb0 资源进行的select、insert、delete 操作数据库创建审计策
略。
gbase=#CREATE AUDIT POLICY adt4 ACCESS SELECT ON LABEL(adt_lb0), INSERT ON
LABEL(adt_lb0), DELETE FILTER ON ROLES(dev_audit, bob_audit), APP(psql, gsql),
IP('10.20.30.40', '127.0.0.0/24');
相关命令
ALTER AUDIT POLICY DROP AUDIT POLICY。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
848