Tape les ordres sans regarder, puis Entrée (casse ignorée, ; final facultatif). Une variante valide peut être refusée, ouvre alors la réponse. Pour les autres questions, réponds avant d’ouvrir : c’est l’effort de rappel qui fait retenir.

Rappel actif

Restitue de mémoire, sans support.

  1. Cite les sept attributs d’un compte utilisateur Oracle. Lesquels sont obligatoires à la création, et lequel ne peut plus jamais changer ?

  2. Donne les sept paramètres de mot de passe d’un profil et ce que chacun limite.

  3. Donne les cinq paramètres de ressources d’un profil, avec leur unité. Quelle condition doit être remplie pour qu’ils s’appliquent ?

Tape la commande

Écris la commande exacte, puis Entrée pour vérifier.

  1. Autorise l’utilisateur HR à se connecter à la base.

  2. Donne à SCOTT le droit de lire la table EMPLOYEES et de modifier uniquement sa colonne SALARY.

  3. Retire à SCOTT ces deux privilèges.

  4. Donne CREATE SESSION à HR en l’autorisant à le redonner à d’autres.

  5. Donne à STOCK le droit de lire EMPLOYEES en l’autorisant à le redonner à d’autres.

  6. Connecte-toi en tant que SYSDBA avec l’authentification par le système d’exploitation (sans nom ni mot de passe).

  7. Crée un utilisateur jdupont authentifié par un service externe (OS, Kerberos…), sans mot de passe Oracle.

Écris-le

Rédige la requête, la configuration ou le code, puis compare avec la réponse.

  1. Crée l’utilisateur scott (mot de passe pwdscott), tablespace par défaut users, quota illimité sur users, obligé de changer son mot de passe à la première connexion.

  2. Crée un profil dev_profile : 2 sessions simultanées maximum, déconnexion après 60 minutes d’inactivité, verrouillage après 3 échecs pendant 1 jour, mot de passe valable 90 jours. Puis affecte-le à scott.

  3. Crée un rôle HR_CLERK qui peut lire et modifier EMPLOYEES, et un rôle HR_MGR qui peut y insérer et supprimer. Donne HR_CLERK à Rachel et David, HR_MGR à Jenny et David.

Calcule

Pose le calcul et donne le résultat, puis Entrée pour vérifier.

  1. Un profil a CPU_PER_CALL 3000. Combien de secondes de CPU une seule requête peut-elle consommer avant d’être arrêtée ?

Distingue

Deux notions proches : dis ce qui les sépare vraiment.

  1. Privilège système et privilège objet : définition, exemple, et qui peut accorder chacun ?

  2. CREATE TABLE et CREATE ANY TABLE : quelle différence, et lequel est dangereux à distribuer ?

  3. WITH ADMIN OPTION et WITH GRANT OPTION : à quel type de privilège s’applique chacun, et que se passe-t-il pour les tiers lors d’un REVOKE ?

  4. Authentification par fichier de mots de passe et par système d’exploitation : comment se connecte-t-on dans chaque cas, et à quoi servent-elles ?

  5. Rôle et profil : les deux s’affectent à un utilisateur. Qu’est-ce que chacun contrôle, et combien peut-on en avoir à la fois ?

Explique pourquoi

Le mécanisme derrière la règle.

  1. Pourquoi un REVOKE avec GRANT OPTION se propage-t-il en cascade, alors qu’avec ADMIN OPTION il ne se propage pas ?

  2. Pourquoi les rôles rendent-ils la gestion des droits « dynamique » ? Illustre avec 50 comptables.

  3. Pourquoi faut-il QUOTA ... ON users en plus de CREATE TABLE pour qu’un utilisateur crée effectivement des tables ?

Cas pratique

Choisis et justifie avec les critères du cours.

  1. Un stagiaire doit pouvoir consulter la table VENTES de COMMERCE, sans rien modifier et sans pouvoir donner ce droit à quelqu’un d’autre. Pendant 3 mois, avec un mot de passe à changer à la première connexion. Liste les ordres.

  2. GRANT SELECT ON EMPLOYEES TO STOCK WITH GRANT OPTION; puis STOCK donne SELECT à USER1. Ensuite, on retire le droit à STOCK. Que peut encore faire USER1 ? Et si c’était CREATE SESSION donné à HR WITH ADMIN OPTION, puis par HR à SCOTT ?

  3. Un développeur demande le rôle DBA « pour aller plus vite ». Que réponds-tu, et que proposes-tu à la place ?

Trouve l'erreur

Chaque affirmation contient au moins une faute.

  1. « CREATE USER ali IDENTIFIED BY pwd; Voilà, Ali peut se connecter. »

  2. « GRANT CREATE TABLE TO HR WITH GRANT OPTION; »

  3. « J’ai mis CONNECT_TIME 480 dans le profil pour limiter les sessions à 8 minutes, et CPU_PER_SESSION 10000 pour 10 secondes de CPU. »

  4. « Le rôle CONNECT, c’est juste le droit de se connecter : je le donne à tout le monde sans réfléchir. »

Et si...

Prévois la conséquence.

  1. Et si un profil a FAILED_LOGIN_ATTEMPTS 3 et PASSWORD_LOCK_TIME 1, et qu’un attaquant tente 3 mots de passe faux sur le compte de Sara ?

  2. Et si on retire un privilège d’un rôle déjà accordé à 30 utilisateurs connectés ?