ich die Datenbankrollen eines bestimmten Benutzers über gespeicherte Prozedur mit dem immer folgend:Return Datenbankrollen ein Benutzer ist kein Mitglied der
USE SQLEXP_ALLEN
GO
SELECT
DP1.name AS RoleName,
ISNULL(DP2.name, 'No members') AS UserName
FROM
sys.database_role_members AS DRM
RIGHT OUTER JOIN
sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN
sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id
WHERE
DP1.type = 'R'
AND DP2.name = @username
ORDER BY
DP1.name;
Aber ich kann nicht scheinen, um herauszufinden, wie zu kommen mit Rollen, zu denen der Benutzer kein Mitglied ist. HILFE!
Sie, wo Prädikat von DP2.Name Ihren linken Join in einen inneren Join verwandelt hat. –