PostrgreSQL特权授予

鉴于我是一个根用户X.我有用户A和B.

我如何授予用户A授权用户B执行一组特定的function?

例如,我们拥有拥有database_1的用户A. 用户A在这个DB上创build一些存储的函数(比如说function_afunction_b )。 用户A应该能够将该function的执行授予用户B,并且只能授予他。

默认情况下,一个对象的所有者拥有该对象上的所有特权,但我没有具体回顾这些特权是否允许普通(非超级)用户对该对象授予对其他用户的权限。

在任何情况下,您都应该能够通过在GRANT语句中附加WITH GRANT OPTION子句来为用户提供这种能力。 (我向你提供详细的文档 。)

例如,在你的假设情况下,作为超级用户X ,你可以这样做:

 GRANT ALL PRIVILEGES ON DATABASE database_1 TO A WITH GRANT OPTION; 

然后,用户A将有权力授予其他用户在database_1对象的权限。 继续假设的例子,用户A可以给用户B特定的权限,如下所示:

 GRANT EXECUTE ON FUNCTION function_a(), function_b() TO B;