chrfriedel
Goto Top

MSSQL 2005 - ausführen einer bestimmten Funktion aus der MasterDB erlauben

Hallo an alle,

seit einer Weile versuche ich einem SQL-Benutzerlogin das der Public-Rolle angehört und keine Rechte auf die MasterDB hat die Erlaubnis zu geben die Funktion xp_logininfo (MasterDB->gespeicherte Systemprozeduren) auszuführen. Diese Prozedure konnte ich bisher nur ausführen wenn der Nutzer der SysAdmin Rolle angehört. Ansonsten bekomme ich die Fehlermeldung:

Die EXECUTE-Berechtigung wurde für das 'xp_logininfo'-Objekt, 'mssqlsystemresource'-Datenbank, 'sys'-Schema, verweigert.

Hat vielleicht irgendjemand eine Idee wie ich das bewerkstelligen könnte? Außer dem auffrufen dieser Funktion soll der Benutzer keine Rechte in der MasterDB haben.

Über eine Antwort würde ich mich freuen. Vielen Dank

Content-Key: 140057

Url: https://administrator.de/contentid/140057

Printed on: April 24, 2024 at 16:04 o'clock

Member: Berrnd
Berrnd Apr 07, 2010 at 18:08:26 (UTC)
Goto Top
Hi,

entweder du erstellst in der master eine neue DB-Rolle, die die entsprechenden Rechte hat und ordnest diese dem User zu, oder du gibst dem User direkt die explizite Berechtigung für das gewünschte Objekt (z. B. Stored Procedure xp_logininfo).

Viele Grüße
Bernd
Member: Biber
Biber Apr 07, 2010 at 18:50:45 (UTC)
Goto Top
Moin ChrFriedel,

willkommen im Forum.
Ich will dir da nicht den Mut nehmen, aber -selbst wenn es noch relativ unkompliziert unter SQL2005 gehen sollte, einem Deppen-User einfach das Execute-Recht zu geben (was laut BOL eigentlich auch nicht gehen sollte)... mit hoher Wahrscheinlichkeit darf der geneigte DAU dann aufrufen und bekommt ein leeres ResultSet.
Oder aber doch den beliebten "Msg 15404, Level 16, State 19, ..... Error 0x5" ==> keine Rechte.

Und in SQLServer 2008 haben die Redmonder genau an dieser Sollbruchstelle nochmal rumgealbert:
Permissions für xp_logininfo laut MSDN
Requires membership in the sysadmin fixed server role or membership in the public fixed database role in the master database with EXECUTE permission granted.

Steck in den Plan "Rechteloser User soll mit xp_logininfo alles sehen können, was ein Domain Admin sieht" nicht zuviel Aufwand.

Was ist denn der fachliche Hintergrund deiner Anforderung - wie kommt es zu dieser Konstellation?

Grüße
Biber
Member: ChrFriedel
ChrFriedel Apr 08, 2010 at 08:40:13 (UTC)
Goto Top
Vielen Dank für die ersten antworten.

Diese Infos hätte ich eigentlich auch gleich mit erwähnen können sorry face-smile

Also der Hintergrund ist das ich hier eine Anwendung habe die Daten aus der DB holt. Leider ist diese Anwendung nicht von mir und somit habe ich keine exakten Kenntnisse über deren Verhalten. An einer bestimmten Stelle benötigt diese Anwendung Informationen über die vorhandenen Active Directory Gruppen und deren Member. In den allermeisten Fällen holt sie diese Informationen aus einem speziell vom Hersteller vorgesehenem View in der AnwendungsDB. Aber mir ist aufgefallen das es Probleme gibt wenn der Rechner auf dem die Anwendung ausgeführt wird nicht in der gleichen Domäne ist wie der SQL-Server. Dann verwendet diese Anwendung plötzlich zur Abfrage der Gruppen die erwähnte xp_loginInfo und diese schlägt fehl aufgrund der mangelnden Rechte. Nun wollte ich gerne entweder dem SQL-User mit dem man in der Anwendung angemeldet ist oder der Anwendungsrolle nur zusätzlich das Recht auf diese Funktion geben. Aktuell bin ich mir noch unsicher was besser ist.

Hoffe das war erstmal verständlich.

Nochmal Vielen Dank

Christian