DROP DATABASE IF EXISTS db_audit;
CREATE DATABASE db_audit OWNER user1;
CREATE TABLESPACE ds_location1 RELATIVE LOCATION 'test_tablespace/test_tablespace_1';
DROP SCHEMA IF EXISTS audit;
CREATE SCHEMA audit;
DROP TABLE IF EXISTS audit.t_audit;
CREATE TABLE audit.t_audit (id INTEGER, col1 VARCHAR(20));
DROP USER IF EXISTS user_audit_test CASECADE;
CREATE USER user_audit_test identified by 'test@2023';
DROP TABLE IF EXISTS t_audit;
CREATE TABLE t_audit (id INTEGER, col1 VARCHAR(20), col2 INTEGER, col3 INTEGER);
DO $$DECLARE i record;
BEGIN
FOR i IN 1..100
LOOP
execute 'INSERT INTO t_audit VALUES (' || i || ', ''audit'', ' || i+1 || ', ' || i+2 || ');';
END LOOP;
END$$;
DROP INDEX IF EXISTS index1;
CREATE UNIQUE INDEX index1 ON audit.t_audit(id);
DROP VIEW IF EXISTS view1;
CREATE VIEW view1 AS SELECT * FROM t_audit;
CREATE OR REPLACE FUNCTION audit_trigger_func() RETURNS TRIGGER AS
$$
DECLARE
BEGIN
INSERT INTO audit.t_audit VALUES(NEW.id, NEW.col1);
RETURN NEW;
END
$$ LANGUAGE PLPGSQL;
CREATE TRIGGER audit_trigger
BEFORE INSERT ON t_audit
FOR EACH ROW
EXECUTE PROCEDURE audit_trigger_func();
DROP FUNCTION IF EXISTS func_sql;
CREATE FUNCTION func_sql(integer, integer) RETURNS integer
AS 'select $1 + $2;'
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;
create server server_audit foreign data wrapper log_fdw;
DROP DATA SOURCE IF EXISTS ds_audit;
CREATE DATA SOURCE ds_audit;
DROP ROW LEVEL SECURITY POLICY IF EXISTS rls_audit ON t_audit;
CREATE ROW LEVEL SECURITY POLICY rls_audit ON t_audit USING(id = 0);
DROP SYNONYM IF EXISTS s_audit;
CREATE OR REPLACE SYNONYM s_audit FOR t_audit;
DROP TYPE IF EXISTS tp_audit;
CREATE TYPE tp_audit AS (col1 int, col2 text);
DROP TEXT SEARCH CONFIGURATION IF EXISTS ts_audit;
CREATE TEXT SEARCH CONFIGURATION ts_audit (parser=ngram) WITH (gram_size = 2, grapsymbol_ignore = false);
DROP SEQUENCE IF EXISTS sq_audit CASCADE;
CREATE SEQUENCE sq_audit
START 101
CACHE 20
OWNED BY t_audit.id;
\! gs_ktool -d all
DROP COLUMN ENCRYPTION KEY IF EXISTS cek1;
DROP CLIENT MASTER KEY IF EXISTS cmk1;
\! gs_ktool -g
CREATE CLIENT MASTER KEY cmk1 WITH (KEY_STORE = gs_ktool, KEY_PATH = "gs_ktool/1" , ALGORITHM = AES_256_GCM);
CREATE COLUMN ENCRYPTION KEY cek1 WITH VALUES (CLIENT_MASTER_KEY = cmk1, ALGORITHM = AES_256_GCM);
CREATE OR REPLACE PROCEDURE pro_test()
as
begin
select count(*) from t_audit;
end;
/
CREATE OR REPLACE PACKAGE pkg_audit IS
var1 int:=1;
var2 int:=2;
PROCEDURE pro_test();
END pkg_audit;
/
CREATE MODEL m_audit USING linear_regression
FEATURES id, col2
TARGET col3
FROM t_audit
WITH learning_rate=0.88, max_iterations=default;
select * from dbe_sql_util.drop_sql_patch('patch_audit');
select * from dbe_sql_util.create_hint_sql_patch('patch_audit', 2578396627, 'indexscan(t_audit)');
DROP AUDIT POLICY IF EXISTS pol_audit;
CREATE AUDIT POLICY pol_audit PRIVILEGES CREATE;
DROP RESOURCE LABEL IF EXISTS mask_lb1;
CREATE RESOURCE LABEL mask_lb1 ADD COLUMN(t_audit.col1);
DROP MASKING POLICY IF EXISTS msk_audit;
CREATE MASKING POLICY msk_audit maskall ON LABEL(mask_lb1);
DROP ROW LEVEL SECURITY POLICY IF EXISTS sec_audit ON t_audit;
CREATE ROW LEVEL SECURITY POLICY sec_audit ON t_audit USING(id = 1);
DO $$DECLARE i record;
BEGIN
FOR i IN 1..100
LOOP
execute 'INSERT INTO t_audit VALUES (' || i || ', ''audit'', ' || i+1 || ', ' || i+2 || ');';
END LOOP;
END$$;
select count(*) from t_audit;
ALTER USER user_audit_test ACCOUNT LOCK;
ALTER USER user_audit_test ACCOUNT UNLOCK;
GRANT ALL PRIVILEGES ON TABLE t_audit TO user_audit_test;
REVOKE INSERT ON TABLE t_audit FROM user_audit_test;
CREATE OR REPLACE FUNCTION func_plpgsql(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
select func_plpgsql(1);
SET datestyle TO postgres,dmy;
DROP DATABASE IF EXISTS db_audit;
DROP USER IF EXISTS user_audit_test CASCADE;
DROP COLUMN ENCRYPTION KEY IF EXISTS cek1;
DROP CLIENT MASTER KEY IF EXISTS cmk1;
\! gs_ktool -d all