Oct 30, 2012

Weblogic SQL Authenticator και nested groups

Όσοι χρησιμοποιούν τον SQL Authenticator ως security provider του Weblogic Server (http://docs.oracle.com/cd/E23943_01/web.1111/e13707/atn.htm#i1208012) θα έχουν ήδη δημιουργήσει σε μια βάση δεδομένων τη βασική υποδομή με τους (ενδεικτικούς) σχετικούς πίνακες USERS, GROUPS και GROUP_MEMBERS. Παραδείγματα της δομής των πινάκων βρίσκονται εδώ και εδώ.

Στην οθόνη διαχείρισης του Weblogic, ορίζουμε τα SQL queries που είναι απαραίτητα για την απεικόνιση του σχήματος ασφάλειας σε πίνακες της βάσης δεδομένων. Σε περίπτωση που μια ομάδα μας (group) μπορεί να περιλαμβάνει άλλες ομάδες (group nesting) τότε μπορούμε να προσαρμόσουμε κατάλληλα το ερώτημα ώστε να επιστρέφονται αναδρομικά όλα τα groups του δεδομένου χρήστη ή group. Η ιδιότητα ονομάζεται "SQL List Member Groups" και επιστρέφει όλα τα groups που ανήκει ο χρήστης.
Μπορούμε λοιπόν να αλλάξουμε το query για την περίπτωση της Oracle και με βάση τα ενδεικτικά σχήματα της βάσης δεδομένων που αναφέρθηκαν στο εξής:

select group_name from group_members start with member = ? connect by prior group_name = member

No comments: