Permissionando com WITH ADMIN OPTION e WITH GRANT OPTION |
Categoria: Oracle | ||||||
Publicado em 18 de Junho de 2013 | ||||||
Ao permissionar no Oracle, seja com privilégio de sistema, privilégio de objeto ou roles, é possível conceder ao usuário que está recebendo a permissão, a possibilidade para que ele possar conceder as mesmas permissões à outros usuários. Para privilégios de sistema e roles, usa-se WITH ADMIN OPTION:
No código acima, a primeira linha indica que o usuário Fernando poderá criar tabelas e também poderá conceder a permissão de criar tabelas a outros usuários. A segunda linha indica que o usuário Fernando está recebendo os privilégios da role ROLE_ANALISTA e ao mesmo tempo poderá conceder os privilégios desta role a outros usuários. Para privilégios de objeto, usa-se WITH GRANT OPTION:
O código acima faz com que o usuário Fernando tenha permissão de SELECT sobre o objeto (tabela) de Clientes e, ao mesmo tempo, o usuário Fernando também poderá conceder a permissão de SELECT a outros usuários. É importante notar que ao usar o comando REVOKE para remover um privilégio de sistema, os privilégios concedidos por outros usuários não serão afetados. Ou seja, não é realizada a remoção de privilégios em cascata. Porém, para privilégios de objeto, a remoção de privilégios em sistema ocorre. Portanto:
Irá remover o privilégio de SELECT do usuário Fernando e de todos os usuários a quem Fernando tenha concedido o mesmo privilégio. |