SECURITY (DEFINER | INVOKER)
Description
The SECURITY clause in Amazon Redshift stored procedures defines the access control and permissions context under which the procedure executes. This determines whether the procedure uses the privileges of the owner (creator) or the caller (user invoking the procedure).
Grammar Syntax
[ { SECURITY INVOKER | SECURITY DEFINER } ]
Sample Source Patterns
Input Code:
CREATE OR REPLACE PROCEDURE SP_SECURITY_INVOKER( )
AS
$$
BEGIN
NULL;
END;
$$
LANGUAGE plpgsql
SECURITY INVOKER
;
CREATE OR REPLACE PROCEDURE SP_SECURITY_DEFINER( )
AS
$$
BEGIN
NULL;
END;
$$
LANGUAGE plpgsql
SECURITY DEFINER;
Output Code:
CREATE OR REPLACE PROCEDURE SP_SECURITY_INVOKER ( )
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "redshift", "convertedOn": "02/07/2025", "domain": "test" }}'
EXECUTE AS CALLER
AS
$$
BEGIN
NULL;
END;
$$
;
CREATE OR REPLACE PROCEDURE SP_SECURITY_DEFINER ( )
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "redshift", "convertedOn": "02/07/2025", "domain": "test" }}'
EXECUTE AS OWNER
AS
$$
BEGIN
NULL;
END;
$$;
Known Issues
There are no known issues.
Related EWIs.
There are no related EWIs.
Last updated