2012-03-23 8 views
0

Die Ausführung die folgende SQL:Wie bestimmen, ob ein Benutzer ein Mitglied einer nicht-feste Rolle SQL-Datenbank ist

USE [WSS_Content] 
EXEC sp_helplogins 

kehrt zwei Ergebnismengen und innerhalb der zweiten resultset ich mehrere Reihen bekommen, aber man insbesondere Das sieht so aus:

LoginName DBName    UserName    UserOrAlias 
DEMO\SPUser SharePoint_Config SharePoint_Shell_Access MemberOf 

Dies ist wie erwartet, und was ich sehen möchte. Doch die Ausführung der folgenden SQL:

EXEC sp_helprole 'SharePoint_Shell_Access' 

gibt mir einen Fehler, der sagt: ‚SharePoint_Shell_Access‘ keine Rolle ist. Aber es ist! Ich kann sehen, dass es von SQL Server Management Studio kommt und es zeigt mir sogar die Mitglieder der Rolle von dort.

Ideal zu erreichen, was ich versuche, ist in der Lage, dies zu nutzen:

SELECT IS_MEMBER('SharePoint_Shell_Access') 

aber natürlich, das den Wert null zurück, weil es denkt auch, dass keine gültige Rolle, wenn es definitiv ist. Was gibt und wie kann ich am besten abfragen, um festzustellen, ob ein bestimmter Benutzer (oder der aktuelle Benutzer) Mitglied dieser benutzerdefinierten Datenbankrolle ist?

Ich verwende SQL Server 2008 R2.

Antwort

0

Wie sich herausstellt, gibt sp_helplogins Ergebnisse über alle Datenbanken zurück. Deshalb tauchte diese Rolle auf, wenn sie nicht auf die aktuelle db beschränkt sein sollte, wie ich vorher dachte.

Aus irgendeinem Grund habe ich das einfach nicht bemerkt und dachte, dass der Eintrag auf den WSS_Content anwendbar war. Stattdessen war es aus der SharePoint_Config-Datenbank. Der Fehler war schließlich korrekt und es gab keine Rolle mit diesem Namen in der Datenbank, in der ich suchte. Ich habe es nur verwirrt.

Verwandte Themen