Segurança e permissões de UDFs
Para criar uma UDF, você deve ter permissão de uso na linguagem para SQL ou plpythonu (Python). Por padrão, USAGE ON LANGUAGE SQL é concedido a PUBLIC, mas você deve conceder explicitamente USAGE ON LANGUAGE PLPYTHONU a usuários ou grupos específicos.
Para revogar o uso na SQL, revogue primeiro o uso em PUBLIC. Depois, conceda o uso na SQL somente a usuários ou grupos específicos que tenham permissão para criar UDFs SQL. O exemplo a seguir revoga o uso na SQL em PUBLIC. Depois, ele concede o uso ao grupo de usuários udf_devs
.
revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;
Para executar uma UDF, você deve ter permissão de execução em cada função. Por padrão, a permissão de execução de novas UDFs é concedida a PUBLIC. Para restringir o uso, revogue a execução da função em PUBLIC. Depois, conceda o privilégio a pessoas ou grupos específicos.
O exemplo a seguir revoga a execução na função f_py_greater
em PUBLIC. Depois, ele concede o uso ao grupo de usuários udf_devs
.
revoke execute on function f_py_greater(a float, b float) from PUBLIC; grant execute on function f_py_greater(a float, b float) to group udf_devs;
Os superusuários têm todos os privilégios por padrão.
Para ter mais informações, consulte GRANT e REVOKE.