Je configure une base de données Express 10G sur Windows 2003 qui sera la fin de la fin d'un serveur Web public. Il y a beaucoup d'autres choses à faire pour durcir la base de données, mais un bon endroit pour démarrer est les privilèges utilisateur. Je sais que l'utilisateur a besoin de connecter et de créer des privilèges de session. Toutes les tables, procédures et packages leur appartiennent.
Existe-t-il d'autres privilèges requis pour les opérations de base de CRUD sur leur propre schéma?
Il n'est pas nécessaire d'accorder le rôle CONNECT
. Dans 10.2, Oracle enfin Réduisait l'ensemble des privilèges assignés à ce rôle à juste CREATE SESSION
mais dans les versions précédentes, ce rôle a beaucoup plus de privilèges que le nom impliquerait.
Il serait plus sécurisé de créer un utilisateur-- un qui possède les tableaux, les procédures, etc. mais qui n'a pas de privilèges CREATE SESSION
et qui possède des privilèges appropriés sur les différents objets que l'application peut utiliser pour se connecter à la base de données. Cela vous permet de faire des choses comme empêcher l'utilisateur de l'application de supprimer des tables ou de supprimer des données à partir de tables de journalisation.
De plus, le propriétaire des tableaux va avoir besoin d'être accordé quota sur tout espace de table ou des espaces de table que les tables d'utilisateur vont être créées. Vous pouvez accorder au propriétaire le privilège UNLIMITED TABLESPACE
, mais il est plus sûr de leur accorder un quota plus petit sur Quels que soient les espaces de table qu'ils ont réellement besoin d'utiliser.