If a stored procedure performs system administration or security-related tasks, you may want to ensure that only users who have been granted a specific role can execute it. The proc_role function allows you to check roles when the procedure is executed; it returns 1 if the user possesses the specified role. The role names are sa_role, sso_role, and oper_role.
Here is an example using proc_role in the stored procedure test_proc to require the invoker to be a system administrator:
create proc test_proc
as
if (proc_role("sa_role") = 0)
begin
print "You do not have the right role."
return -1
end
else
print "You have SA role."
return 0
For example:
test_proc
You have SA role.