Στο άρθρο αυτό θα μιλήσουμε για τους χρήστες μιας βάσης Oracle. Θα δοθούν χρήσιμα scripts που αφορούν την δημιουργία χρηστών και την διαχείρισή τους.
SQL>create user db_user
identified by <password>
default tablespace users
temporary tablespace temp
profile default
account unlock;
Όταν θέλουμε να δημιουργήσουμε έναν καινούργιο χρήστη θα πρέπει πρώτα να ορίζουμε το όνομα του χρήστη μαζί με το password του καθώς και το default tablespace στο οποίο θα μπορεί να γράφει. Μαζί ορίζουμε και το προφίλ ασφαλείας του χρήστη είμαστε έτοιμοι να προχωρήσουμε στην δημιουργία του.
SQL>drop user db_user cascade;
Για να σβήσουμε έναν χρήστη μαζί με τα δεδομένα του τρέχουμε την παραπάνω εντολή.
2. Δικαιώματα Χρηστών
SQL>grant execute on SYS.DBMS_MONITOR to db_user;
Όταν θέλουμε να δώσουμε την δυνατότητα σε ένα χρήστη να μπορεί να εκτελεί ενέργειες σε αντικείμενα (πίνακες, functions,procedure) άλλου χρήστη, εκτελούμε την παραπάνω εντολή και εκχωρούμε στον χρήστη το δικαίωμα να εκτελεί συγκεκριμένη ενέργεια. Οι ενέργειες που μπορούμε να εκχωρήσουμε είναι: ALTER, CREATE, DROP, DELETE, INSERT, SELECT, UPDATE, EXECUTE.
SQL>revoke drop any table from db_user;
Για να αφαιρέσουμε κάποιο δικαίωμα από έναν χρήστη τρέχουμε την πιο πάνω εντολή.
3.Ρόλοι Χρηστών
SQL>create role connect not identified;
grant create session to connect;
Όταν θέλουμε να ομαδοποιήσουμε δικαιώματα τα οποία στην συνέχεια θα δοθούν σε μια ομάδα χρηστών τότε χρήσιμη είναι η δημιουργία ενός ρόλου. Δημιουργούμε τον ρόλο με την πρώτη εντολή και στην συνέχεια εκχωρούμε στον ρόλο δικαιώματα όπως στο 2.8.2 εκχωρούμε δικαιώματα σε χρήστη. Όπως περιγράφεται στο 2.8.2 μπορούμε να αφαιρέσουμε και δικαιώματα από έναν ρόλο.
SQL>drop role connect;
Για να σβήσουμε έναν ρόλο τρέχουμε την παραπάνω εντολή.
4. Αλλαγή password χρήστη
SQL>alter user db_user identified by test
Όταν θέλουμε να αλλάξουμε το password ενός χρήστη εκτελούμε την παραπάνω εντολή όπου db_user είναι ο χρήστης που θέλουμε να αλλάξουμε το password και test είναι το νέο password που θέλουμε να του δώσουμε.
5. Script δημιουργίας χρηστών μαζί με τους κωδικούς πρόσβασης (Oracle 11g)
Για να μπορέσουμε στην 11g να πάρουμε από την βάση το script δημιουργίας των χρηστών της βάσης μαζί με τα κωδικοποιημένα passwords τρέχουμε με έναν λογαριασμό με ισχυρά δικαιώματα το παρακάτω:
SQL> set head off
set pages 0
set long 9999999
select dbms_metadata.get_ddl('USER', username) || ';' usercreate from dba_users;
6. Στοιχεία Χρηστών Βάσης
Με το παρακάτω query βλέπουμε όλα τα στοιχεία των χρηστών-σχημάτων της βάσης (το τρέχουμε με ισχυρά δικαιώματα).
SQL> select * from sys.user$