如何在redshift中查看UDF授权

时间:2015-12-29 03:17:08

标签: amazon-redshift

队 你能帮我解决一下sql查询:

1)我在数据库TESTDB1上向TESTUSER1授予“使用语言PLPYTHONU”。如何确定此用户是否在该特定数据库testdb1中授予了此权限?

testdb1=>grant USAGE ON LANGUAGE PLPYTHONPU to testuser1;

2)我将一个函数的执行权限授予TESTUSER1。如何查找此用户是否在该特定db testdb1中授予了此权限?

testdb1=> grant execute on function schema1.fun1(float,float) to testuser1;
GRANT

由于

1 个答案:

答案 0 :(得分:2)

1)如何检查select lanname,lanacl from pg_language where lanname = 'plpythonu';

的权限
lanacl
如果给出了权限,

dev=# select lanname,lanacl from pg_language where lanname = 'plpythonu'; lanname | lanacl -----------+---------------------------------------------- plpythonu | {rdsdb=U/rdsdb,my_test_user=U/rdsdb} (1 row) 包含用户名。

离)

EXECUTE ON FUNCTION

2)如何检查SELECT proname,proacl FROM pg_proc WHERE proname='<function-name>'

的权限
proacl
如果给出了权限,

dev=# SELECT proname,proacl FROM pg_proc WHERE proname='f_greater'; proname | proacl -----------+--------------------------------------------------------------------------------------- f_greater | {=X/admin,admin=X/admin,my_test_user=X/admin} (1 row) 包含用户名。

离)

LANGUAGE

不幸的是,看起来没有方便的默认宏来很好地获取这些信息。由于DTE或UDF没有数据库概念,因此您无需在这些查询中指定数据库名称。