Discussion:
Kein Login möglich
(zu alt für eine Antwort)
Quax
2008-08-01 08:49:39 UTC
Permalink
Hallo!

Mich plagt ein seltsames Problem. Wir haben eine Neusinstallation von SQL
2005 SP2 x64 auf Windows 2008.
Wir haben zwei Datenbanken von einer SQL 7.0 Maschine übernommen.
Dabei sind alle Anmeldungen, Datenbankrollen und Berechtigungen richtig
mitgekommen. Sowei sieht das sehr gut aus.

Die Clients greifen über ODBC auf diesen Server zu.
Ein System-DSN als Administrator zu definieren (oder als sa) und zu testen
funktioniert einwandfrei.

Wenn ich allerdings den Test mit einem User mache, bekomme ich immer den
Fehler 18456, Schweregrad 14, State 5 - also Anmeldung mit einer ungültigen
Userid.
Egal ob ich diese Userid unter Anmeldungen definiere, ob ich es mit einer
Gruppe probiere oder sogar mit einer SQL-internen ID: Der Fehler ist immer
derselbe.
Es spielt auch keine Rolle, welche Datenbank ich mit der jeweiligen Userid
assoziere.
Auch wenn ich mich auf dem Server selbst im Management Studio mit
irgendetwas anderem als Administrator oder sa anmelden will, schlägt das
fehl.

Es scheint fast so, als ob der SQL-Server jedes Login ablehnt - außer vom
Administrator bzw. sa.

Bin für jeden Tipp dankbar.

Gert
Elmar Boye
2008-08-01 09:31:22 UTC
Permalink
Hallo Gert,
Post by Quax
Mich plagt ein seltsames Problem. Wir haben eine Neusinstallation von
SQL 2005 SP2 x64 auf Windows 2008.
Wir haben zwei Datenbanken von einer SQL 7.0 Maschine übernommen.
Dabei sind alle Anmeldungen, Datenbankrollen und Berechtigungen richtig
mitgekommen. Sowei sieht das sehr gut aus.
Sind die Datenbankbenutzer auch den richtigen Anmeldekonten zugeordnet?
Post by Quax
Wenn ich allerdings den Test mit einem User mache, bekomme ich immer den
Fehler 18456, Schweregrad 14, State 5 - also Anmeldung mit einer
ungültigen Userid.
Das sieht so aus als ob das nicht zutrifft.

Siehe dafür <URL:http://support.microsoft.com/kb/240872/>
"Lösen von Zugriffsproblemen, wenn eine Datenbank auf einen anderen SQL-Server verschoben wird"

Gruß Elmar
Quax
2008-08-01 11:12:14 UTC
Permalink
Hallo Elmar,

danke für die Antwort. Habe inzwischen die Prozedur laufen lassen, die mir
einen Befehlssatz erstellt, der auf dem Zielserver die Logins anlegt
(KB246133).

Ich möchte eine neue Instanz aufsetzen und das ganze noch einmal testen.
Kannst Du mir sagen, ob die Reihenfolge richtig ist:

- Ich lege die zwei Datenbanken an.
- Ich lasse die Befehle zur Login-Erzeugung laufen.
- Ich ordne den Logins Datenbanken zu.
- Ich stelle die beiden Datenbanken aus den BAK-Files wieder her.

Oder muss ich die Datenbanken zuerst wiederherstellen und dann die Logins
erzeugen?

Und noch eine Frage: In der jetzigen Instanz habe ich einige Änderungen an
der Datenbank vorgenommen. Kann ich die sichern und in der anderen Instanz
wieder einspielen oder nehme ich dabei meine Problem mit?

Danke und ciao!

Gert
Post by Elmar Boye
Hallo Gert,
Post by Quax
Mich plagt ein seltsames Problem. Wir haben eine Neusinstallation von SQL
2005 SP2 x64 auf Windows 2008.
Wir haben zwei Datenbanken von einer SQL 7.0 Maschine übernommen.
Dabei sind alle Anmeldungen, Datenbankrollen und Berechtigungen richtig
mitgekommen. Sowei sieht das sehr gut aus.
Sind die Datenbankbenutzer auch den richtigen Anmeldekonten zugeordnet?
Post by Quax
Wenn ich allerdings den Test mit einem User mache, bekomme ich immer den
Fehler 18456, Schweregrad 14, State 5 - also Anmeldung mit einer
ungültigen Userid.
Das sieht so aus als ob das nicht zutrifft.
Siehe dafür <URL:http://support.microsoft.com/kb/240872/>
"Lösen von Zugriffsproblemen, wenn eine Datenbank auf einen anderen
SQL-Server verschoben wird"
Gruß Elmar
Elmar Boye
2008-08-01 15:24:58 UTC
Permalink
Hallo Gert,
Post by Quax
danke für die Antwort. Habe inzwischen die Prozedur laufen lassen, die
mir einen Befehlssatz erstellt, der auf dem Zielserver die Logins anlegt
(KB246133).
Ich möchte eine neue Instanz aufsetzen und das ganze noch einmal testen.
- Ich lege die zwei Datenbanken an.
- Ich lasse die Befehle zur Login-Erzeugung laufen.
- Ich ordne den Logins Datenbanken zu.
- Ich stelle die beiden Datenbanken aus den BAK-Files wieder her.
Oder muss ich die Datenbanken zuerst wiederherstellen und dann die
Logins erzeugen?
Letzteres, also
- Anlegen der Konten via KB 246133)
- Wiederherstellen der Datenbanken
(Reihenfolge dabei egal)

Danach mittels sp_change_user_login 'Report' prüfen,
ob die Konten und Datenbankbenutzer synchron sind.

Hintergrund dazu:
Die Konten werden in der MASTER Datenbank gespeichert -
sie sind also nur einmal vorhanden.
Die werden Datenbankbenutzer in der Datenbank zugeordnet -
sie existieren also in jeder Datenbank.
Und sie werden beim Wiederherstellen überschrieben.

Verbindendes Glied ist dabei die SID (nicht der Kontenname oder
Datenbankbenutzername)
Post by Quax
Und noch eine Frage: In der jetzigen Instanz habe ich einige Änderungen
an der Datenbank vorgenommen. Kann ich die sichern und in der anderen
Instanz wieder einspielen oder nehme ich dabei meine Problem mit?
Wie gesagt: Bei der Wiederherstellung werden die Datenbank-
Benutzer ebenfalls zurückgesichert - Änderungen daran gehen
also verloren.

Die Konten wiederum sind in der master Datenbank gespeichert,
Änderungen dort bleiben erhalten.

Gruß Elmar
Quax
2008-08-02 05:00:15 UTC
Permalink
Hallo Elmar,

also ich verstehe das immer noch nicht. Da beide Datenbanken mit relativ
wenig Benutzern auskommen, habe ich sie in einer Testinstanz gelöscht.

Genauer gesagt: Ich habe die Schemata in den Datenbanken gelöscht, dann die
Benutzer in den Datenbanken und dann die Anmeldungen im Modul.
Hat alles ohne eine Fehlermeldung geklappt.

Dann lege ich eine der gelöschten Anmeldung wieder an und assoziiere sie
dabei mit der master-Datenbank. Geht ohne Meldungen oder Probleme.

Dann will ich mich damit anmelden und erhalte den Fehler 18456, Schweregrad
14, diesmal aber Status 6 ("Attempt to use a Windows login name with SQL
Authentication").
Wenn ich eine bisher nie verwendete Anmeldung definiere, funktioniert es.

exec sp_change_users_login 'Report' liefert übringens immer ein leeres
Ergebnis (=keine Ausgabe).

Ciao!
Gert
Elmar Boye
2008-08-04 07:39:38 UTC
Permalink
Hallo Quax,
Post by Quax
also ich verstehe das immer noch nicht. Da beide Datenbanken mit
relativ wenig Benutzern auskommen, habe ich sie in einer Testinstanz
gelöscht.
Genauer gesagt: Ich habe die Schemata in den Datenbanken gelöscht, dann
die Benutzer in den Datenbanken und dann die Anmeldungen im Modul.
Wenn Du eh alles löscht, so hättest Du Dir einiges ersparen können ;-))
Post by Quax
Dann lege ich eine der gelöschten Anmeldung wieder an und assoziiere sie
dabei mit der master-Datenbank. Geht ohne Meldungen oder Probleme.
Dann will ich mich damit anmelden und erhalte den Fehler 18456,
Schweregrad 14, diesmal aber Status 6 ("Attempt to use a Windows login
name with SQL Authentication").
In dem Fall hast Du einen Mix von Windows- und SQL Server-Authentifizierung.
Bei der Neuanlage hast Du Windows-Konten erstellt und keine SQL Server-Konten.
Im Management Studio wären mußt Du dazu im Dialog "SQL Server Authentifizierung"
auswählen und den Benutzernamen angeben und _nicht_ "Windows-Authentifizierung"
und ein Konto der Domäne auswählen.

Im Falle von Windows-Authentifizierung muß Du Dich in Windows mit dem
Konto angemeldet haben. Der Benutzername kann nicht im Anmeldedialog
vom SSMS (oder anderen Anwendungen) angegeben werden, sondern wird
von Windows vorgegeben (Programmatische Ausnahmen hierbei aussen vorgelassen).

Wenn die Konten einem Benutzer in der Datenbank zugewiesen werden
sehen sie meist gleich aus, weil die Domäne (der Name vor dem Querstrich)
üblicherweise dort entfällt.
Post by Quax
Wenn ich eine bisher nie verwendete Anmeldung definiere, funktioniert es.
Hier stellt sich die Frage:
Willst Du wirklich SQL Server-Konten oder doch eher Windows-Konten?

Wenn alle Benutzer in der Domäne (dem Active Directory) hinterlegt sind,
so spricht alles für Windows-Authentifizierung.
Post by Quax
exec sp_change_users_login 'Report' liefert übringens immer ein leeres
Ergebnis (=keine Ausgabe).
Die findet nur Standard (SQL Server) Konten.

Gruß Elmar
Quax
2008-08-05 05:24:34 UTC
Permalink
Hallo Elmar,
Post by Elmar Boye
Im Falle von Windows-Authentifizierung muß Du Dich in Windows mit dem
Konto angemeldet haben. Der Benutzername kann nicht im Anmeldedialog
vom SSMS (oder anderen Anwendungen) angegeben werden, sondern wird
von Windows vorgegeben (Programmatische Ausnahmen hierbei aussen vorgelassen).
Danke!
Gert
mike
2008-08-01 11:12:01 UTC
Permalink
hi,

also was mir als erstes einfällt, aber wahrscheinlich eh schon gecheckt
wurde, ob die konten enabled sind ... anders gibts das nciht, wenn man mit sa
reinkommt muss man auch mit jedem anderen sql konto reinkommen - sher strange
Post by Quax
Hallo!
Mich plagt ein seltsames Problem. Wir haben eine Neusinstallation von SQL
2005 SP2 x64 auf Windows 2008.
Wir haben zwei Datenbanken von einer SQL 7.0 Maschine übernommen.
Dabei sind alle Anmeldungen, Datenbankrollen und Berechtigungen richtig
mitgekommen. Sowei sieht das sehr gut aus.
Die Clients greifen über ODBC auf diesen Server zu.
Ein System-DSN als Administrator zu definieren (oder als sa) und zu testen
funktioniert einwandfrei.
Wenn ich allerdings den Test mit einem User mache, bekomme ich immer den
Fehler 18456, Schweregrad 14, State 5 - also Anmeldung mit einer ungültigen
Userid.
Egal ob ich diese Userid unter Anmeldungen definiere, ob ich es mit einer
Gruppe probiere oder sogar mit einer SQL-internen ID: Der Fehler ist immer
derselbe.
Es spielt auch keine Rolle, welche Datenbank ich mit der jeweiligen Userid
assoziere.
Auch wenn ich mich auf dem Server selbst im Management Studio mit
irgendetwas anderem als Administrator oder sa anmelden will, schlägt das
fehl.
Es scheint fast so, als ob der SQL-Server jedes Login ablehnt - außer vom
Administrator bzw. sa.
Bin für jeden Tipp dankbar.
Gert
Quax
2008-08-01 11:17:36 UTC
Permalink
Hallo Mike,

ja, die "Berechtigung zur Herstellung einer Verbindung mit dem
Datenbankmodul" ist erteilt und der "Anmeldename" ist aktiviert.
Gibt es sonst noch etwas, was ich prüfen kann?

Ciao!
Gert
Post by mike
hi,
also was mir als erstes einfällt, aber wahrscheinlich eh schon gecheckt
wurde, ob die konten enabled sind ... anders gibts das nciht, wenn man mit sa
reinkommt muss man auch mit jedem anderen sql konto reinkommen - sher strange
Post by Quax
Hallo!
Mich plagt ein seltsames Problem. Wir haben eine Neusinstallation von SQL
2005 SP2 x64 auf Windows 2008.
Wir haben zwei Datenbanken von einer SQL 7.0 Maschine übernommen.
Dabei sind alle Anmeldungen, Datenbankrollen und Berechtigungen richtig
mitgekommen. Sowei sieht das sehr gut aus.
Die Clients greifen über ODBC auf diesen Server zu.
Ein System-DSN als Administrator zu definieren (oder als sa) und zu testen
funktioniert einwandfrei.
Wenn ich allerdings den Test mit einem User mache, bekomme ich immer den
Fehler 18456, Schweregrad 14, State 5 - also Anmeldung mit einer ungültigen
Userid.
Egal ob ich diese Userid unter Anmeldungen definiere, ob ich es mit einer
Gruppe probiere oder sogar mit einer SQL-internen ID: Der Fehler ist immer
derselbe.
Es spielt auch keine Rolle, welche Datenbank ich mit der jeweiligen Userid
assoziere.
Auch wenn ich mich auf dem Server selbst im Management Studio mit
irgendetwas anderem als Administrator oder sa anmelden will, schlägt das
fehl.
Es scheint fast so, als ob der SQL-Server jedes Login ablehnt - außer vom
Administrator bzw. sa.
Bin für jeden Tipp dankbar.
Gert
mike
2008-08-04 11:00:01 UTC
Permalink
ich glaub jeder user braucht auch eine standarddb, bzw. kann er sich nicht
einloggen wenn die standarddb auf eine nicht exisiterende db zeigt (also wenn
eine db gerade detached wurde z.b.). wichitg ist auch, dass die db user und
die logins miteinander verbuinden sind (sp_change_user_login) - aber teste
mal,. ob die logins überhaupt mit dem managementstudio auf die master db z.b.
kommen, und dann richte die verbindung mit der richtigen db ein.

lg michael
Post by Quax
Hallo Mike,
ja, die "Berechtigung zur Herstellung einer Verbindung mit dem
Datenbankmodul" ist erteilt und der "Anmeldename" ist aktiviert.
Gibt es sonst noch etwas, was ich prüfen kann?
Ciao!
Gert
Post by mike
hi,
also was mir als erstes einfällt, aber wahrscheinlich eh schon gecheckt
wurde, ob die konten enabled sind ... anders gibts das nciht, wenn man mit sa
reinkommt muss man auch mit jedem anderen sql konto reinkommen - sher strange
Post by Quax
Hallo!
Mich plagt ein seltsames Problem. Wir haben eine Neusinstallation von SQL
2005 SP2 x64 auf Windows 2008.
Wir haben zwei Datenbanken von einer SQL 7.0 Maschine übernommen.
Dabei sind alle Anmeldungen, Datenbankrollen und Berechtigungen richtig
mitgekommen. Sowei sieht das sehr gut aus.
Die Clients greifen über ODBC auf diesen Server zu.
Ein System-DSN als Administrator zu definieren (oder als sa) und zu testen
funktioniert einwandfrei.
Wenn ich allerdings den Test mit einem User mache, bekomme ich immer den
Fehler 18456, Schweregrad 14, State 5 - also Anmeldung mit einer ungültigen
Userid.
Egal ob ich diese Userid unter Anmeldungen definiere, ob ich es mit einer
Gruppe probiere oder sogar mit einer SQL-internen ID: Der Fehler ist immer
derselbe.
Es spielt auch keine Rolle, welche Datenbank ich mit der jeweiligen Userid
assoziere.
Auch wenn ich mich auf dem Server selbst im Management Studio mit
irgendetwas anderem als Administrator oder sa anmelden will, schlägt das
fehl.
Es scheint fast so, als ob der SQL-Server jedes Login ablehnt - außer vom
Administrator bzw. sa.
Bin für jeden Tipp dankbar.
Gert
Quax
2008-08-05 05:27:03 UTC
Permalink
Hallo Mike,

anscheinend zählt bei Windows-Usern nur das Login bzw. der Account, unter
dem ein Prozess gestartet wurde.
Entweder habe ich das unwissend bisher immer richtig gemacht oder das ist
eine Neuerung gegenüber unseren bisherigen Systemen.
Ich checke das mal mit der Testinstanz.

Ciao!
Gert

Lesen Sie weiter auf narkive:
Loading...