Τρόπος επίλυσης ζητημάτων δικαιωμάτων κατά τη μετακίνηση μιας βάσης δεδομένων ανάμεσα σε διακομιστές που εκτελούν τον SQL Server

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 240872 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο περιγράφει τον τρόπο αντιστοίχισης της τυπικής και της ενοποιημένης συνδέσεις για την επίλυση ζητημάτων δικαιωμάτων κατά τη μετακίνηση μιας βάσης δεδομένων ανάμεσα σε διακομιστές που εκτελούν τον SQL Server.

Περισσότερες πληροφορίες

Όταν μετακινείτε μια βάση δεδομένων από ένα διακομιστή που εκτελεί τον SQL Server σε έναν άλλο διακομιστή που εκτελεί τον SQL Server, ενδέχεται να παρουσιαστεί ασυμφωνία μεταξύ των αριθμών αναγνωριστικού ασφαλείας (SID) τις συνδέσεις στο στοMasterβάση δεδομένων και οι χρήστες με τοΧΡΗΣΤΗΣDatabase. Από προεπιλογή, SQL Server 7.0, SQL Server 2000 και SQL Server 2005 παρέχουν τοsp_change_users_loginσύστημα αποθηκευμένης διαδικασίας, για να αντιστοιχίσετε αυτούς τους χρήστες που δεν ταιριάζουν. Ωστόσο, μπορείτε να χρησιμοποιήσετε μόνο τοsp_change_users_loginαποθηκευμένη διαδικασία για την αντιστοίχιση τυπικών συνδέσεων του SQL Server και πρέπει να πραγματοποιήσετε αυτά αντιστοίχισης για ένα χρήστη κάθε φορά. Για περισσότερες πληροφορίες σχετικά με τοsp_change_users_loginαποθηκευμένη διαδικασία, ανατρέξτε στο θέμα "sp_change_users_login" SQL Server 7.0, SQL Server 2000 και SQL Server 2005 ηλεκτρονικά βιβλία.

Στον SQL Server 7.0 ή νεότερες εκδόσεις, μπορείτε να διατηρήσετε την αντιστοίχιση μεταξύ τις συνδέσεις με τοMasterβάση δεδομένων και οι χρήστες με τοΧΡΗΣΤΗΣβάση δεδομένων, χρησιμοποιώντας τα SID. Αυτή η αντιστοίχιση απαιτείται για να διατηρήσετε τα σωστά δικαιώματα για τις συνδέσεις στο στοΧΡΗΣΤΗΣβάσεις δεδομένων. Όταν αυτή η αντιστοίχιση χάνεται, τις συνδέσεις έχουν δικαίωμα θέματα που περιλαμβάνουν αλλά δεν περιορίζονται με την ακόλουθη:
  • Εάν η σύνδεση SQL Server δεν υπάρχει στο νέο διακομιστή και ο χρήστης προσπαθήσει να συνδεθεί, ο χρήστης ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:
    Διακομιστή: Κατάσταση μήνυμα λάθους 18456, 16, επίπεδο 1
    Απέτυχε η σύνδεση για το χρήστη '% ls'.
  • Εάν υπάρχει η σύνδεση SQL Server σε νέο διακομιστή, αλλά το αναγνωριστικό SID σε τοMasterβάση δεδομένων διαφέρει από το αναγνωριστικό ΑΣΦΑΛΕΊΑΣ με τοΧΡΗΣΤΗΣβάσης δεδομένων, ο χρήστης μπορεί να συνδεθεί στον SQL Server με επιτυχία, ωστόσο, όταν ο χρήστης προσπαθήσει να αποκτήσει πρόσβαση σε αυτήν τη βάση δεδομένων, ο χρήστης ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:
    Διακομιστή: Κατάσταση μήνυμα λάθους 916, 14, επίπεδο 1, Line1
    Χρήστη στο διακομιστή ' %. * ls "δεν είναι έγκυρος χρήστης της βάσης δεδομένων" %. * ls'.
    ΣΗΜΕΙΩΣΗΣτον SQL Server 2005, ο χρήστης ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:

    Ο χρήστης διακομιστή '% s' δεν είναι έγκυρος χρήστης στη βάση δεδομένων '% s'. Προσθέστε το λογαριασμό χρήστη πρώτα στη βάση δεδομένων.
Για περισσότερες πληροφορίες σχετικά με το μοντέλο ασφαλείας του SQL Server 7.0, ανατρέξτε στη λευκή βίβλο "Microsoft SQL Server 7.0 ασφάλεια". Για να προβάλετε τη λευκή βίβλο, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
.aspx http://msdn2.Microsoft.com/en-us/library/Aa226173 (SQL.70)
Για περισσότερες πληροφορίες σχετικά με το μοντέλο ασφαλείας του SQL Server 2000, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
322712Δυνατότητες του Microsoft SQL Server 2000 S322712 ασφαλείας και οι καλύτερες πρακτικές

Περιορισμοί

  • Εάν οι χρήστες τουsysusersπίνακα χωρίς ένα πρόθεμα το όνομα του υπολογιστή ή το όνομα τομέα που κατέχουν και αυτά τα αντικείμενα αναφέρονται σε εφαρμογές, χρησιμοποιώντας το όνομα αποτελείται από δύο μέρη, UserName.ObjectName, ενδέχεται να διακόψει την εφαρμογή επειδή τοsp_sidmapαποθηκευμένη διαδικασία μετονομάζει αυτών των χρηστών με το πρόθεμα το όνομα υπολογιστή ή το όνομα τομέα, όπως εμφανίζεται στο πλαίσιο τουsysxloginstable. To work around this problem, after thesp_sidmapstored procedure is completed, rename the users who were affected in thesysuserstable to their former names or contact your primary support provider.
  • This article does not consider aliases. You must manage the aliases manually.
  • If a standard SQL Server login does not exist on the new SQL Server server, you can add the login with a NULL password. You may have to change the password for these logins accordingly.
  • If a user was created in theΧΡΗΣΤΗΣdatabase with a name that differs from that which appears in thesysxloginstable, it is impossible to know the corresponding login for that user. Therefore, before you run thesp_sidmapstored procedure:
    1. Transfer all the objects that this user owns to a staging database.
    2. Drop the user, add the user that has the correct name, and then transfer back all the objects for this user.
  • If a user has neither a corresponding login nor a prefix of either the local computer name or the domain name, you receive a message for this user. This message indicates that you must first add the user at the Windows level and then add it to the SQL Server as a login. After you do this, you must run thesp_sidmapstored procedure again.
  • If a user has a prefix of either the domain name or the local Windows server name, but the corresponding login does not exist in thesysxloginstable, the stored procedure tries to add this as a new login to SQL Server. If the Windows user does not exist, it generates an output message in the results window and then manually creates the login after it first adds the Windows user.
  • If there is more than one login for a user in thesysuserstable, you see an output message in the results file and it lists all the logins that have the same username. At this point, you must manually intervene to make sure that the user corresponds to only one login.

    ΠαράδειγμαΑν υπάρχει ήδη ο φάκελοςsysuserstable has a user named "johndoe" and thesysxloginstable has logins with names such as "Test\johndoe" and "Test2\johndoe", when you run the stored procedure, you receive a message that states that one of the users has more than one login and that the System Administrator must choose one. This is the only time that you must run the second stored procedure,sp_prefix_sysusersname, which is provided in this article. Additionally, this situation is described in detail in the Readme.txt file.

Map the standard and integrated logins

After you move a database from one server that is running SQL Server server to another server that is running SQL Server server, follow these steps for minimal user intervention:

SQL Server 7.0 and SQL Server 2000

  1. Make sure that there is a login in thesysxloginstable in theMasterdatabase for each user in thesysuserstable of the database.

    ΣΗΜΕΙΩΣΗTo add a standard SQL Server login, see the "sp_addlogin" topic in SQL Server Books Online. To add an integrated SQL Server login, see the "sp_grantlogin" topic in SQL Server Books Online.
  2. Download the MapSids.exe file, and then extract the Sp_sidmap.sql and Readme.txt files.
  3. Log on to the server that is running SQL Server as a system administrator, and then run the Sp_sidmap.sql file in the user database. Running the Sp_sidmap.sql file creates the two stored procedures,sp_sidmapANDsp_prefix_sysusersname.
  4. Make sure that the database is not accessed by any other user than the one who is running the stored procedures.
  5. Make sure that Query Analyzer displays results in text format and not in grid format. To do this, either press theCTRL^Tkeys, or clickΕρώτημα, και στη συνέχεια κάντε κλικ στο κουμπίResults in Text. This is very important so that you can view the results and the informational messages in one window and save the output to a text file. You might need this file later to resolve some of the mappings.
  6. Because you cannot verify whether the parameters are passed correctly, make sure to pass them correctly to thesp_sidmapstored procedure:
    EXEC sp_SidMap @old_domain = old_domain_name,
    @new_domain = new_domain_name,
    @old_server = old_server_name,
    @new_server = new_server_name
    Replace the values for the old and new domain names and server names appropriately.
  7. Save the results in a file and follow the directions that are provided in the Readme.txt file.

    ΣΗΜΕΙΩΣΗWhen you run these stored procedures, thesysuserstable is the only table that changes in the database. To return to a state where you started, restore the database from the backup or reattach the database.

Του SQL Server 2005

If you are running SQL Server 2005, use theWITH LOGINclause of theALTER USERπρόταση για να αντιστοιχίσετε ένα χρήστη σε μια νέα σύνδεση. Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:
http://MSDN.Microsoft.com/en-us/library/ms176060.aspx
ΣΗΜΕΙΩΣΗΓια να χρησιμοποιήσετε τοΜΕ ΣΎΝΔΕΣΗόρο τηςΤΡΟΠΟΠΟΊΗΣΗ ΧΡΉΣΤΗδήλωση, πρέπει να εφαρμόσετε SQL Server 2005 Service Pack 2.

Αναφορές

Για περισσότερες πληροφορίες, κάντε κλικ στους αριθμούς των άρθρων παρακάτω για να προβάλετε τα άρθρα της Γνωσιακής Βάσης (Knowledge Base) της Microsoft:
274188Το θέμα "Αντιμετώπιση προβλημάτων με ορφανούς χρήστες" στα ηλεκτρονικά βιβλία (Books Online) είναι ελλιπές
246133Τρόπος μεταφοράς συνδέσεων και κωδικών πρόσβασης μεταξύ εμφανίσεων του SQL Server
168001Εμφάνιση σφαλμάτων σύνδεσης ή/και δικαιωμάτων χρήστη μετά από επαναφορά αρχείων ένδειξης σφαλμάτων
298897ΔΕΙΓΜΑ: Το Mapsids.exe χρήσιμο πίνακα αναγνωριστικών ασφαλείας μεταξύ των χρηστών και των κύριων βάσεων δεδομένων όταν είναι μετακινήθηκε βάσης δεδομένων

Ιδιότητες

Αναγν. άρθρου: 240872 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Λέξεις-κλειδιά: 
kbhowtomaster kbmt KB240872 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:240872

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com