2009-10-29 6 views
16

j'ai besoin d'accorder des privilèges à tous les utilisateurs, je peux le faire:Oracle - accorder des privilèges à tous les utilisateurs

GRANT select on table TO user1; 
GRANT select on table TO user2; 
... 

Mais il y a beaucoup d'utilisateurs. Comment puis-je accorder ce privilège à tous les utilisateurs à la fois?

J'ai essayé:

GRANT select on table TO ALL; 

Mais cela ne fonctionne pas.

Répondre

23
grant select on table to public; 

Mais faites attention quand vous faites cela - assurez-vous que c'est ce que vous voulez vraiment faire.

+1

Merci, c'est juste ce que j'avais besoin de faire dans mon travail scolaire mais je ne pouvais pas le comprendre. J'avais 99% de l'assignemnt déjà fini et c'était la dernière chose restante :) –

7

Vous devez utiliser des rôles. Accordez des autorisations aux rôles. attribuer des rôles aux utilisateurs.

+0

Les rôles dans Oracle sont-ils cumulatifs ou disjoints? Dans DB2, ils sont cumulatifs. Si vous avez reçu un rôle, vous pouvez exercer ces autorisations à tout moment. Dans Informix, les rôles sont séparés. vous utilisez l'instruction SET ROLE pour définir quel rôle est actuellement actif et, à tout moment, vous ne pouvez exercer les privilèges fournis par le rôle qu'avec le rôle actuellement défini. (Vous pouvez toujours exercer tous les droits accordés directement à votre nom d'utilisateur, bien sûr.) –

+0

a Un rôle est comme un utilisateur, mais il cache derrière lui tous les utilisateurs auxquels ce rôle a été attribué. Il est préférable d'accorder une autorisation sur une configuration basée sur les rôles plutôt qu'à chaque utilisateur séparément. Je pense que Oracle ressemble plus à DB2. – Dani

+0

@Dani - merci. Un test d'acidité est "existe-t-il une instruction SET ROLE dans Oracle". Sinon, il doit fonctionner comme DB2; s'il y en a un, ça pourrait être plus comme Informix. –

Questions connexes