Totty.js
Totty.js

Reputation: 15831

DB2 IBM everytime I create a view in my database the permissions are limited to the user that created, I want to be for everyone

DB2 IBM everytime I create a view in my database the permissions are limited to the user that created, I want to be for everyone:

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

Now this "aaa" is protected. I would like to be available for everyone by default.. how to do? thanks

Upvotes: 0

Views: 166

Answers (1)

bhamby
bhamby

Reputation: 15440

(This answer assumes you're using DB2 for Linux/Unix/Windows)

You have to use GRANT to assign the special AuthID "PUBLIC" (everyone) permissions to the view.

GRANT SELECT ON stkqry.aaa TO PUBLIC

I don't think that there's a way to automatically mark all views as readable by public, but if you need to go back and mark all of them, you could use something like this to generate the statement for you:

SELECT 'GRANT SELECT ON ' || 
         TRIM(VIEWSCHEMA) || '.' || 
         TRIM(VIEWNAME)   || ' TO PUBLIC'
FROM SYSCAT.VIEWS 
WHERE DEFINER <> 'SYSIBM'

Upvotes: 1

Related Questions