鉴于我是一个根用户X.我有用户A和B.
我如何授予用户A授权用户B执行一组特定的function?
例如,我们拥有拥有database_1的用户A. 用户A在这个DB上创build一些存储的函数(比如说function_a
和function_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;