Можем ли мы зашифровать хранимые процедуры в снежинках подобно тому, что мы делаем на SQL сервере? - PullRequest
0 голосов
/ 27 апреля 2020

Можем ли мы зашифровать хранимые процедуры в Snowflake аналогично тому, что мы делаем на SQL Сервере?

Например, аналогично

CREATE PROCEDURE #EncryptSP
WITH ENCRYPTION
AS
QUERY HERE
GO

1 Ответ

1 голос
/ 27 апреля 2020

Все в базах данных Snowflake зашифровано, поэтому я считаю, что проблема заключается в том, что пользователи могут запускать хранимую процедуру, но не видеть ее содержимое. Это не проблема.

-- Using a database called TEST
grant usage on database test to role public;
grant usage on schema public to role public;

-- Create a secure procedure and run it as SYSADMIN (or whatever role you want)
create or replace secure procedure test.public.hello_world()
returns string
language JavaScript
execute as owner
as
$$

    return "Hello world";

$$;

-- Allow users in the PUBLIC role to run the procedure
grant usage on procedure HELLO_WORLD() to role PUBLIC;

-- Test that users in role PUBLIC can run the procedure
use role public;
use database test;
use schema public;
call HELLO_WORLD();

-- However, they cannot see the stored procedure
select get_ddl('procedure', 'HELLO_WORLD()');

-- The owner can.
use role SYSADMIN;
select get_ddl('procedure', 'HELLO_WORLD()');
...