SQL SERVER 2005 mit Windows 7 Probleme

SQL SERVER 2005 mit Windows 7 Probleme

Zuerst habe ich die Datenbank von einem anderen Server wiederhergestellt und jetzt heißen alle gespeicherten Prozeduren [azamsharp].[usp_getlatestposts]. Ich denke, [azamsharp] ist vorangestellt, da es der Benutzer auf dem ursprünglichen Server war.

Auf meinem lokalen Rechner läuft das jetzt nicht. Ich möchte das Präfix [azamsharp] nicht bei allen gespeicherten Prozeduren.

Wenn ich mit der rechten Maustaste auf Sproc klicke, kann ich nicht einmal die Eigenschaftenoption sehen. Ich verwende SQL SERVER 2005 unter Windows 7.

AKTUALISIEREN:

Das Merkwürdige ist, dass ich die Eigenschaftenoption sehen kann, wenn ich von meinem Computer aus auf die Produktionsdatenbank zugreife. Es stimmt also wirklich etwas mit der Sicherheit von Windows 7 nicht.

UPDATE 2:

Als ich die gespeicherte Prozedur für verwaiste Benutzer ausführte, wurden zwei Benutzer angezeigt: „azamsharp“ und „dbo1“. Ich habe den Benutzer „azamsharp“ repariert, aber „dbo1“ wird nicht repariert. Wenn ich das folgende Skript ausführe:

exec sp_change_users_login 'update_one', 'dbo1', 'dbo1' erhalte ich die folgende Fehlermeldung:

Meldung 15291, Ebene 16, Status 1, Prozedur sp_change_users_login, Zeile 131. Diese Prozedur wird beendet. Der Anmeldename „dbo1“ fehlt oder ist ungültig.

Antwort1

Sie haben wahrscheinlich verwaiste Benutzer. Wenn Sie von Ihrem Computer aus auf den Server zugreifen, haben Sie mit Ihren Domänenanmeldeinformationen wahrscheinlich als DBadmin Zugriff auf den Produktionsserver. Führen Sie diesen Code aus, um verwaiste Benutzer zu erkennen:

Use TestDB
sp_change_users_login 'report'

Die Ausgabe listet alle Anmeldungen auf, bei denen eine Nichtübereinstimmung zwischen den Einträgen in der Sysusers-Systemtabelle der TestDB-Datenbank und der Sysxlogins-Systemtabelle in der Masterdatenbank vorliegt. So beheben Sie das Problem:

Verwaiste Benutzer auflösen

Use TestDB
sp_change_users_login 'update_one', 'test', 'test' 

SELECT sid FROM dbo.sysusers WHERE name = 'test'
0x40FF09E48FBD3354B7833706FD2C61E4

use master
SELECT sid FROM dbo.sysxlogins WHERE name = 'test'
0x40FF09E48FBD3354B7833706FD2C61E4

Dadurch wird der Server-Login „test“ erneut mit dem TestDB-Datenbankbenutzer „test“ verknüpft. Die gespeicherte Prozedur sp_change_users_login kann mit dem Parameter „auto_fix“ auch eine Aktualisierung aller verwaisten Benutzer durchführen. Dies wird jedoch nicht empfohlen, da SQL Server versucht, Logins und Benutzer anhand des Namens abzugleichen. In den meisten Fällen funktioniert dies. Wenn einem Benutzer jedoch das falsche Login zugeordnet ist, verfügt ein Benutzer möglicherweise über falsche Berechtigungen.

verwandte Informationen