0

DB2 IBM 每次在我的数据库中创建视图时,权限都仅限于创建的用户,我想为每个人服务:

 create view stkqry.aaa as SELECT ... from ...

现在这个“aaa”受到保护。我希望默认情况下可供所有人使用..怎么办?谢谢

4

1 回答 1

1

(此答案假设您使用的是 DB2 for Linux/Unix/Windows)

您必须使用GRANT为视图分配特殊的 AuthID “PUBLIC”(所有人)权限。

GRANT SELECT ON stkqry.aaa TO PUBLIC

我不认为有一种方法可以自动将所有视图标记为公众可读,但如果您需要返回并标记所有视图,您可以使用类似这样的方法为您生成语句:

SELECT 'GRANT SELECT ON ' || 
         TRIM(VIEWSCHEMA) || '.' || 
         TRIM(VIEWNAME)   || ' TO PUBLIC'
FROM SYSCAT.VIEWS 
WHERE DEFINER <> 'SYSIBM'
于 2012-04-05T13:26:10.290 回答