DB2 IBM 每次在我的数据库中创建视图时,权限都仅限于创建的用户,我想为每个人服务:
create view stkqry.aaa as SELECT ... from ...
现在这个“aaa”受到保护。我希望默认情况下可供所有人使用..怎么办?谢谢
DB2 IBM 每次在我的数据库中创建视图时,权限都仅限于创建的用户,我想为每个人服务:
create view stkqry.aaa as SELECT ... from ...
现在这个“aaa”受到保护。我希望默认情况下可供所有人使用..怎么办?谢谢
(此答案假设您使用的是 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'