Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

Îåêßíçóå áðü ôï ìÝëïò Dataman. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 14-08-2008, 01:43. Υπάρχουν 10 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-08-2008, 10:20 44075

    Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Χαιρετώ την παρέα

    Έχω ένα project σε VB2008 και προσπαθώ να συνδέσω την SQL Database (DATA.MDF) που βρίσκεται σε άλλον υπολογιστή του τοπικού δικτύου.

    ConnectionString:
    Server=SERVER\SQLEXPRESS;AttachDbFilename=\\server\C\TEST\New\DATA.mdf" & "; Integrated Security=True;User Instance=True

    Όταν κάνω open της Database (myConnection.Open()), μου επιστρέφει πρόβλημα με τα δικαιώματα: User does not have permission to perform this action


    Τι κάνω λάθος;

    Το δίκτυο έιναι με Windows XP και απενεργοποιημένο το Windows Firewall.

    Ευχαριστώ

  •  13-08-2008, 12:22 44076 σε απάντηση της 44075

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Το δίκτυο είναι σε Domain (Active Directory);
    Αν δεν είναι σε domain δεν μπορεί να ¨δει¨ o server τον χρήστη που προσπαθεί να συνδεθεί.
    Αντί «Integrated Security» δοκίμασε να συνδεθείς με χρήστη του Sql Server
    Φιλάρετος Σεβαστιάδης.

    Albert Camus: Life is the sum of your choices.

  •  13-08-2008, 12:36 44078 σε απάντηση της 44075

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Dataman:

    ConnectionString:
    Server=SERVER\SQLEXPRESS;AttachDbFilename=\\server\C\TEST\New\DATA.mdf" & "; Integrated Security=True;User Instance=True

    Για δοκίμασε το παρακάτω string:
    Server=ServerName;Database=MyDabase;UserId=DBUser;password=DBPassword

    Φιλάρετος Σεβαστιάδης.

    Albert Camus: Life is the sum of your choices.

  •  13-08-2008, 17:58 44081 σε απάντηση της 44075

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Για να "σηκώσεις" μία βάση θα πρέπει να έχει δικαίωμα read ΚΑΙ write στο folder στο οποίο βρίσκεται η βάση. Όταν προσπαθείς να συνδεθείς σε μία βάση με user instance ουσιαστικά λες στον SQL Server να σηκώσει τη βάση και μετά να σε συνδέση σε αυτή. Δώσε δικαίωμα write στο χρήστη σου και δοκίμασε ξανά.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  13-08-2008, 18:53 44082 σε απάντηση της 44081

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Παναγιώτης Καναβός:

    Για να "σηκώσεις" μία βάση θα πρέπει να έχει δικαίωμα read ΚΑΙ write στο folder στο οποίο βρίσκεται η βάση. Όταν προσπαθείς να συνδεθείς σε μία βάση με user instance ουσιαστικά λες στον SQL Server να σηκώσει τη βάση και μετά να σε συνδέση σε αυτή. Δώσε δικαίωμα write στο χρήστη σου και δοκίμασε ξανά.



    Θέλεις να με βοηθήσεις λίγο σε αυτό;
    Πως μπορώ να δώσω δικαιώματα; (είμαι νέος σε προγραμματισμό με SQL Server)

  •  13-08-2008, 19:03 44084 σε απάντηση της 44082

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Μπορείς να εξηγήσεις το σκεπτικό γιατί να θες να κάνεις mount μια βάση επάνω από το δίκτυο, και γιατί απλά δεν μεταφέρεις τον SQL server σου στο μηχάνημα που θέλεις να είναι αποθηκευμένα τα δεδομένα;

    Η λύση που που προσπαθείς να υλοποιήσεις είναι λογικά ανορθόδοξη... Υστερεί όσο σε απόδοση της βάσης - θα είναι αργή η προσπέλαση επάνω από το δίκτυο - αλλά και σε ασφάλεια - θα απαιτηθούν περισσότερα δικαιώματα να παραχωρηθούν στο web application για να μπορέσει να κάνει μια τέτοια προσπέλαση στην βάση...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  13-08-2008, 19:15 44085 σε απάντηση της 44078

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Filaretos:
    Dataman:

    ConnectionString:
    Server=SERVER\SQLEXPRESS;AttachDbFilename=\\server\C\TEST\New\DATA.mdf" & "; Integrated Security=True;User Instance=True

    Για δοκίμασε το παρακάτω string:
    Server=ServerName;Database=MyDabase;UserId=DBUser;password=DBPassword


    Δηλαδή αυτά:
    Server: SERVER\SQLEXPRESS
    Database: \\server\C\TEST\New\DATA.mdf
    UserId: Δεν έχω ορίσει Username
    password: Δεν έχω ορίσει κωδικό

    Πως εννοείς το ConnectionString;
  •  13-08-2008, 19:23 44086 σε απάντηση της 44084

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    George J. Capnias:

    Μπορείς να εξηγήσεις το σκεπτικό γιατί να θες να κάνεις mount μια βάση επάνω από το δίκτυο, και γιατί απλά δεν μεταφέρεις τον SQL server σου στο μηχάνημα που θέλεις να είναι αποθηκευμένα τα δεδομένα;

    Η λύση που που προσπαθείς να υλοποιήσεις είναι λογικά ανορθόδοξη... Υστερεί όσο σε απόδοση της βάσης - θα είναι αργή η προσπέλαση επάνω από το δίκτυο - αλλά και σε ασφάλεια - θα απαιτηθούν περισσότερα δικαιώματα να παραχωρηθούν στο web application για να μπορέσει να κάνει μια τέτοια προσπέλαση στην βάση...

     

    George J.



    Λοιπόν OK, έχουμε και λέμε
    Την εφαρμογή (Multi User)που θέλω να υλοποιήσω - αναβαθμίσω (υπάρχει σε VB6 με Access ΒΔ) πρέπει να είναι σε ένα υπολογιστή (Server) η ΒΔ και από άλλα δύο τερματικά θα υπάρχει το λογισμικό που θα τρέχει την ίδια ΒΔ.
    Όπως είπα και πιο πάνω είμαι νέος στο .NET και στον SQL Server, αλλά γενικά θεωρώ ότι αυτό που θέλω να κάνω ειναι το πιο κοινό στις βάσεις SQL, ίσως δεν το κάνω με τον σωστό τρόπο.
  •  13-08-2008, 22:34 44091 σε απάντηση της 44086

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Αυτό που θες να κάνεις είναι απλό:

    • Σε ένα υπολογιστή θα εγκαταστήσεις την βάση δεδομένων σου - τον SQL Server, και θα μπει η βάση δεδομένων σου, όχι σαν filename αλλά μόνιμα attached στον server σου.
    • Στον SQL server σου, θα επιτρέψεις να δέχεται connections μέσω TCP/IP από το δίκτυο
    • Στον SQL server σου, θα ενεργοποιήσεις το SQL authentication. Ανάλογα αν υπάρχει ανάγκη να ξέρεις ποιος χρήστες έκανε αλλαγή στην βάση σου ή ανά χρήστη θέλεις να υπάρχουν διαφορετικά δικαιώματα, ή τίποτα από τα προηγούμενα - όπως και με την Access - θα δημιουργήσεις πολλούς ή ένα χρήστη στον SQL server που θα έχει πρόσβαση στην βάση σου.
    • Για να μπορέσεις να συνδεθείς στην βάση, από το πρόγραμμα σου, θα έχεις ένα connection string της μορφής "Persist Security Info=False;User ID={username};Password={password};Initial Catalog={database_name};Data Source={machine_name}\sqlexpress"

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  14-08-2008, 01:26 44097 σε απάντηση της 44091

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Ευχαριστώ όλους και ειδικά εσένα George J. Capnias.
    Φαίνεται ότι ακολουθούσα διαφορετικό τρόπο διαχείρισης της ΒΔ.

    Επι την ευκαιρία, εάν έχω την ΒΔ σε ένα υπολογιστή που βρίσκεται On Line με Static IP, θα χρησιμοποιούσα τον ίδιο τρόπο σύνδεσης;
  •  14-08-2008, 01:43 44098 σε απάντηση της 44097

    Απ: Πρόβλημα σύνδεσης SQL Database από άλλον υπολογιστή

    Ναι, εφόσον δεν εμποδίζονται οι clients από κάποιο firewall.

    Παρόλα αυτά δεν είναι συνετό να έχεις ένα SQL Server διαθέσιμο έτσι on line...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems