Feb 23, 2012

Web interface για SQL queries στην Oracle

Μια ειδική απαίτηση που προέκυψε σε ένα έργο, είχε να κάνει με πρόσβαση σε μια βάση δεδομένων της Oracle, ώστε αναλυτές να μπορούν να μπορούν να καταθέτουν SQL ερωτήματα σε ένα συγκεκριμένο σχήμα. Ένας επιπλέον περιορισμός είχε να κάνει με τα χαρακτηριστικά των σχετικών δικτύων που δεν επέτρεπαν την πρόσβαση στο listener port της Oracle (πχ 1521) ούτε σε binary data, οπότε η κίνηση θα έπρεπε να είναι η απλούστερη δυνατή, η HTTP. Ενώ μέχρι τη 10g η Oracle προσέφερε το περιβάλλον της iSQL*Plus για κατάθεση ερωτημάτων μέσω web, αυτή η δυνατότητα δεν υποστηρίζεται πλέον στην 11g. Μια καλή λύση αποτελεί η καταχρηστική χρησιμοποίηση του περιβάλλοντος του Application Express (Apex) που διαθέτει μια φιλική web διεπαφή για τη δημιουργία ερωτημάτων, ανάμεσα στις πολλές άλλες δυνατότητες που διαθέτει.

Στην 11g, μια τυποποιημένη εγκατάσταση περιλαμβάνει την Apex αλλά δεν ενεργοποιεί κάποιον web listener (πχ στο port 8080). Αν και βασικά έχουμε και την επιλογή της χρησιμοποίησης του Apache, κάτι πιο άμεσο είναι η αξιοποίηση του listener της Apex όπως περιγράφεται εδώ. Έπειτα από αυτή τη διαδικασία, μπορούμε να συνδεθούμε στην αρχική σελίδα της Apex και ως διαχειριστές να φτιάξουμε ένα νέο workspace, με βάση ένα υπάρχον σχήμα (το application data σχήμα μας) Αν υπάρχει ένα σοβαρό θέμα ασφάλειας, τότε μπορούμε να αφήσουμε την Apex να φτιάξει ένα νέο database schema, στο οποίο θα φροντίσουμε να δώσουμε τα κατάλληλα grants (ή και να φτιάξουμε και ανάλογα read-only database views ώστε να επωφεληθούμε από την εμφάνιση της δομής των αντικειμένων στον object browser)

H κατασκευή αυτή, πρόκειται να αντιγράψει και το δοκιμαστικό σχήμα της Apex, οπότε σημειώνουμε να διαγράψουμε όλα τα νέα αντικείμενα όπως τους πίνακες DEMO*, DEPT, EMP, σχετιζόμενα sequences και functions, καθώς και το application workspace.

Ως διαχειριστές, δημιουργούμε ένα λογαριασμό χρήστη προκειμένου να συνδεθεί στο σύστημα με την ιδιότητα του developer στο Apex workspace που μόλις φτιάξαμε. Αυτό είναι! Από το μενού της αρχικής οθόνης, υπάρχει η επιλογή SQL Workshop που μας επιτρέπει να εκτελέσουμε τα SQL ερωτήματά μας ή να δούμε τι δομή της βάσης, σε ένα web περιβάλλον.

No comments: