PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MSSQL-Konfiguration: Benutzer


Shink
2007-08-07, 12:19:28
Eine Frage an die MSSQL-Gurus:
Ich hab eine Datenbank, da finde ich als Benutzer "dba" für "select * from tabelle" die Tabelle "tabelle" nicht, obwohl sie dem Benutzer zugeordnet ist; "select * from dba.tabelle" funktioniert hingegen.

Wäre mir im Prinzip egal, aber ich habe Closed-Source Fremdsoftware, in der dieser SQL-String hardcoded ist.
Wie kann man so etwas konfigurieren?

Gast
2007-08-07, 12:34:49
Weil dein Objektbesitzer (Tabelle) wahrscheinlich ein anderer Nutzer ist als von deinem SQL Server Login. Wenn du weißt, welcher Nutzer der Besitzer des Objektes ist, müsstest du die Abfrage zum Laufen bekommen, indem du das Statement so umformulierst:
SELECT * FROM besitzer.[Tabelle] // entsprechende Rechte auf das Objekt vorausgesetzt

Gast
2007-08-07, 12:52:59
Dann musst du den Besitzer wechseln, wenn du das Statement nicht beeinflussten kannst.
sp_changeobjectowner 'object', 'new owner'

Shink
2007-08-07, 13:53:29
Weil dein Objektbesitzer (Tabelle) wahrscheinlich ein anderer Nutzer ist als von deinem SQL Server Login. Wenn du weißt, welcher Nutzer der Besitzer des Objektes ist, müsstest du die Abfrage zum Laufen bekommen, indem du das Statement so umformulierst:
SELECT * FROM besitzer.[Tabelle] // entsprechende Rechte auf das Objekt vorausgesetzt
Ich bin eben als Benutzer "dba" eingeloggt, kann aber nur mit "dba.[Tabelle]" selektieren, nicht mit "[Tabelle]".
Das ist mir bisher noch in keiner MSSQL-Datenbank aufgefallen, aber diese hat jemand auf einen anderen Server verfrachtet und ich komme eben nicht drauf, was da falsch konfiguriert wurde.
[Tabelle] hat als Tabellenbesitzer dba.

Gast
2007-08-07, 15:03:46
Ja, das ist aber dann schon richtig so. Wenn du das ohne Besitzer Postfix willst, wirst du den Besitzer der Tabelle zu dbo ändern müssen.
Was du auch noch ausprobieren könntest, dass du überprüfst, ob dein dba Benutzer Mitglied in den Rollen db_accessadmin und db_owner ist.

Shink
2007-08-07, 15:53:59
Hmm.. hab nun einen neuen Benutzer angelegt, diesem mit sp_changeobjectowner alle Tabellen und Views gegeben (gehen da keine Wildcards?), den Benutzer dba gelöscht, neu erzeugt und ihm alles wieder gegeben. Nun funktioniert es.