Εμφάνιση 1-8 από 8
  1. #1
    Εγγραφή
    09-06-2008
    Περιοχή
    Athens, Greece
    Ηλικία
    33
    Μηνύματα
    1.130
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    109073 kbps / 10990 kbps
    ISP
    COSMOTE S.A.
    Router
    AVM FRITZ!Box 7590
    Path Level
    Interleaved
    Καλημέρα σας,

    Θα ήθελα να σας ρωτήσω κάτι. Χρησιμοποιούμε Oracle SQL Developer στη σχολή μου σε αυτό το εξάμηνο προκειμένου να παραδώσουμε εργαστηριακές ασκήσεις. Το θέμα όμως που έχω έχει ως εξής. Από τη στιγμή που εγώ περάσω κάτι στη βάση μου (π.χ. procedure / trigger) αυτομάτως ο καθένας που έχει συνδεθεί στον sql server της σχολής, μπορεί να δει το κώδικα της procedure / trigger.

    Για να το εξηγήσω καλύτερα, υπάρχει μία περιοχή στα αριστερά στο δέντρο που ονομάζεται "Other Users". Εκεί μέσα, εμφανίζονται όλοι οι χρήστες που έχουν ενεργό account στον server. Ο καθένας λοιπόν, αν επιλέξει όποιον άλλον χρήστη θέλει, μπαίνει στη βάση του και βλέπει / παίρνει κώδικα. Δοκίμασα και άλλαξα το pass από τα connection properties (by default κάναμε login με username το username μας και password το username μας. Οπότε έβαλα ένα δικό μου pass με μια εντολή που βρήκα αλλά και πάλι, δεν αποτρέπει το παραπάνω που περιέγραψα (το οποίο εύκολα μπορεί να το διαπιστώσει κανείς από τα logs που κρατάει ο server, Tools -> Monitor Sessions).

    Γνωρίζει κανείς κάποιον τρόπο να το εμποδίσω?
    Άκουσα κάτι για scema αλλά δεν κατάλαβα...

    Intel Core i7-3930K | Gigabyte GA-X79-UD5 | Corsair Hydro Series H100i | G.Skill Ares 64GB | Asrock Arc A380 6GB OC | Creative SoundBlaster Z | OCZ Vector SSD 128GB | WD CaviarBlack 640GB | WD RED 2TB | Coolermaster Silent Pro M600 | Coolermaster 690 Pure Black Edition Case | Triple Monitor: Dell U2311H - 2 x Dell U2312HM
    MacBook Pro (Retina 13-inch / 16GB Ram)
    iPhone 15 Pro 128GB Black Titanium

  2. #2
    Εγγραφή
    25-04-2007
    Ηλικία
    56
    Μηνύματα
    162
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    16384/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΘΗΝΑΣ
    Router
    Pirelli
    Η βάση είναι SQL Server ή Oracle?
    Σε Oracle και εφόσον φτιάχνεις αντκείμενα στο σχήμα σου, δες στο view USER_TAB_PRIVS για το ποιοί έχουν πρόσβαση στα αντικείμενα σου (πίνακες, procedures,...) και χρησιμοποίησηε την εντολή REVOKE για να αφαιρέσεις τα δικαιώματα.
    Σε SQL Server τα πράγματα είναι διφορετικά και δεν τα ξέρω τόσο καλά....
    Θυμάμαι ότι η ασφάλεια ορίζεται κεντρικά για κάθε server, αν ποας στο αντίστοιχο μενού θα δεις όλους τους χρήστες και στις ιδιότητες τους θα δεις σε ποιές βάσεις έχουν πρόσβαση.
    Αν έχουν πρόσβαση σε αυτήν που δουλεύεις και έχεις δικαιώματα διαχειριστή, μπορείς να αφαιρέσεις την πρόσβαση.

  3. #3
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    Eχετε ο καθένας διαφορετικό username/password στην βάση; Εαν ναι, τότε για να μπορούν να δούν οι άλλοι το δικό σου schema (δηλαδή πίνακες, views, procedures, triggers etc) είτε έχουν δικαίωμα DBA (η εύκολη λύση για όσους δεν ξέρουν/μπορούν να ορίσουν finegrained δικαιώματα και ρόλους ή εχει δωθεί σχετικό δικαίωμα σε κάθε user στην βάση - πιθανόν μέσω ενός role).

    Στην περίπτωση αυτή το καλύτερο που μπορείς να κάνεις, μιας και δεν μπορείς να αναιρέσεις το δικαίωμα DBA άλλων χρηστών, είναι να κάνεις wrap τον κώδικα.
    http://www.oracle-base.com/articles/..._DDL_10gR2.php

    Αυτό θα κάνει το κώδικά σου σε μια μορφή κωδικοποιημένη obsfucated και δύσκολο έως αδύνατο σε κάποιον άλλο να τον δεί. Εκτός του function / procedure call header.

  4. #4
    Εγγραφή
    30-09-2002
    Περιοχή
    Παλλήνη
    Ηλικία
    53
    Μηνύματα
    636
    Downloads
    7
    Uploads
    0
    Ταχύτητα
    20480/1024
    ISP
    Connx
    DSLAM
    ΟΤΕ - Ν. ΜΑΚΡΗ
    Router
    Cisco
    Με τα grant/revoke μπορείς να ορίσεις ποιοι χρήστες έχουν πρόσβαση σε ένα αντικείμενο καθώς και τον τύπο αυτής.

  5. #5
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    δεν παίζει εαν ο άλλος user έχει dba δικαιώματα. Γιατί μπορεί να κάνει ότι θέλει, είναι dba. Το πιθανότερο είναι ότι αντι να δώσουν λεπτομερή και ακριβή δικαιώματα σε κάθε χρήστη, τους δώσανε όλους dba δικαιώματα.

  6. #6
    Εγγραφή
    09-06-2008
    Περιοχή
    Athens, Greece
    Ηλικία
    33
    Μηνύματα
    1.130
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    109073 kbps / 10990 kbps
    ISP
    COSMOTE S.A.
    Router
    AVM FRITZ!Box 7590
    Path Level
    Interleaved
    @gitane
    Oracle SQL Developer

    @anon
    Κοίταξα το Link αλλά μπερδεύτηκα περισσότερο. Πολύ κώδικας. Έτρεξα τη function αλλά μετά τι;

    By default, λέμε στο διαχειριστή ότι είμαστε οι "τάδε", μας ενεργοποιεί τον χώρο μας στο server με στοιχεία σύνδεσης ως εξής:
    username: icsdXXXXX
    password: icsdXXXXX

    Ουσιαστικά δηλ., για να συνδεθεί κάποιος στη βάση του άλλου, αρκεί να δώσει το username του που είναι φυσικά γνωστό σε όλους. Επιπλέον, υπάρχει ακόμη ευκολότερος τρόπος (αυτός που περιέγραψα παραπάνω με τη περιοχή Other Users του δέντρου) όπου δεν χρειάζεται καν να συνδεθείς στη βάση του άλλου εισάγοντας τα διαπιστευτήρια αλλά απλά κλικάρεις τον ίδιο το χρήστη (icsdXXXXX) στην περιοχή εκείνη.

    @pts
    Από όσο κοίταξα, μπορώ να κόψω δικαιώματα μόνο σε tables / procedures /... ένα - ένα και όχι σε όλη τη βάση. Αν και αμφιβάλλω αν θα δουλέψει. Θ ατο δοκιμάσω τώρα σε μία procedure και θα δω.

    edit: (@pts)
    Έτρεξα την εντολή "revoke execute on ADDILIKIES from public;" για μία procedure ADDILIKIES που έχω αλλά μου έβγλε μύνημα:

    Error starting at line 1 in command:
    revoke execute on ADDILIKIES from public
    Error report:
    SQL Error: ORA-01927: δεν είναι δυνατή η εκτέλεση REVOKE για προνόμια που δεν έχετε παραχωρήσει
    01927. 00000 - "cannot REVOKE privileges you did not grant"
    *Cause: You can only revoke privileges you granted.
    *Action: Don't revoke these privileges.

    ........Auto merged post: icsd08063 πρόσθεσε 26 λεπτά και 30 δευτερόλεπτα αργότερα ........

    Έτρεξα την function get_date_string και μετά τον κώδικα:
    Κώδικας:
    SET SERVEROUTPUT ON SIZE UNLIMITED
    DECLARE
      l_source  VARCHAR2(32767);
      l_wrap    VARCHAR2(32767);
    BEGIN
      l_source := 'CREATE OR REPLACE FUNCTION get_date_string RETURN VARCHAR2 AS' ||
                  'BEGIN ' ||
                  'RETURN TO_CHAR(SYSDATE, ''DD-MON-YYYY''); ' ||
                  'END get_date_string;';
    
      l_wrap := SYS.DBMS_DDL.WRAP(ddl => l_source);
      DBMS_OUTPUT.put_line(l_wrap);
    END;
    Μπήκα από τη βάση του άλλου ατόμου της ομάδος μου στη δική μου βάση αλλά και πάλι, μπορώ να δω κώδικα από procedures για παράδειγμα.
    Τελευταία επεξεργασία από το μέλος icsd08063 : 18-05-11 στις 10:43. Αιτία: auto merged post

    Intel Core i7-3930K | Gigabyte GA-X79-UD5 | Corsair Hydro Series H100i | G.Skill Ares 64GB | Asrock Arc A380 6GB OC | Creative SoundBlaster Z | OCZ Vector SSD 128GB | WD CaviarBlack 640GB | WD RED 2TB | Coolermaster Silent Pro M600 | Coolermaster 690 Pure Black Edition Case | Triple Monitor: Dell U2311H - 2 x Dell U2312HM
    MacBook Pro (Retina 13-inch / 16GB Ram)
    iPhone 15 Pro 128GB Black Titanium

  7. #7
    Εγγραφή
    25-04-2007
    Ηλικία
    56
    Μηνύματα
    162
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    16384/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΘΗΝΑΣ
    Router
    Pirelli
    Μήπως μπορείς να αλλάξεις και τον κώδικα των άλλων?
    Μάλλον έχει δοθεί κάποιο συστεμικό δικαίωμα, όπως το "ALTER ANY PROCEDURE", οπότε δεν μπορείς να κάνεις τίποτα, μόνο ο DBA μπορεί.

    Το μόνο που μένει είναι ότι είπε ο anon, δηλαδή να κάνεις wrap τον κώδικα.

  8. #8
    Εγγραφή
    30-09-2002
    Περιοχή
    Παλλήνη
    Ηλικία
    53
    Μηνύματα
    636
    Downloads
    7
    Uploads
    0
    Ταχύτητα
    20480/1024
    ISP
    Connx
    DSLAM
    ΟΤΕ - Ν. ΜΑΚΡΗ
    Router
    Cisco
    Παράθεση Αρχικό μήνυμα από icsd08063 Εμφάνιση μηνυμάτων
    @gitane
    @pts
    Από όσο κοίταξα, μπορώ να κόψω δικαιώματα μόνο σε tables / procedures /... ένα - ένα και όχι σε όλη τη βάση. Αν και αμφιβάλλω αν θα δουλέψει. Θ ατο δοκιμάσω τώρα σε μία procedure και θα δω.
    Μπορείς να δώσεις το "GRANT <PRIVILEGE> ANY TABLE TO <USER> για όλη την βάση.

Παρόμοια Θέματα

  1. Απομακρυσμένο backup Mysql βάσης
    Από Kapnos στο φόρουμ Unix - Linux
    Μηνύματα: 3
    Τελευταίο Μήνυμα: 21-01-10, 10:24
  2. Μετατροπη βασης Access σε sql εντολές
    Από teorid στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 30-01-08, 20:34

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας