Thema Datum  Von Nutzer Rating
Antwort
Rot Übersicht aller Datenbankmappings und zugehöriger Datenbankrolle nach User
17.04.2025 13:48:53 SQL Repo
NotSolved
17.04.2025 14:08:16 Gast98666
NotSolved

Ansicht des Beitrags:
Von:
SQL Repo
Datum:
17.04.2025 13:48:53
Views:
33
Rating: Antwort:
  Ja
Thema:
Übersicht aller Datenbankmappings und zugehöriger Datenbankrolle nach User
DECLARE @LoginName NVARCHAR(128) = N'Username'; -- ← Loginname hier anpassen
DECLARE @LoginSID VARBINARY(85);
DECLARE @sql NVARCHAR(MAX) = N'';

-- Login-SID holen
SELECT @LoginSID = sid
FROM sys.server_principals
WHERE name = @LoginName;

IF @LoginSID IS NULL
BEGIN
    PRINT 'Login nicht gefunden.';
    RETURN;
END

-- Temp-Tabelle vorbereiten
IF OBJECT_ID('tempdb..#LoginMappings') IS NOT NULL DROP TABLE #LoginMappings;

CREATE TABLE #LoginMappings (
    DatabaseName SYSNAME,
    DatabaseUserName SYSNAME,
    UserType NVARCHAR(60),
    CreateDate DATETIME,
    ModifyDate DATETIME,
    RoleName SYSNAME
);

-- Dynamisches SQL bauen
SELECT @sql += '
USE [' + name + '];

IF EXISTS (SELECT 1 FROM sys.database_principals WHERE sid = 0x' + CONVERT(VARCHAR(MAX), @LoginSID, 2) + ')
BEGIN
    INSERT INTO #LoginMappings (DatabaseName, DatabaseUserName, UserType, CreateDate, ModifyDate, RoleName)
    SELECT
        ''' + name + ''' AS DatabaseName,
        dp.name,
        dp.type_desc,
        dp.create_date,
        dp.modify_date,
        dr.name AS RoleName
    FROM sys.database_principals dp
    LEFT JOIN sys.database_role_members drm ON dp.principal_id = drm.member_principal_id
    LEFT JOIN sys.database_principals dr ON drm.role_principal_id = dr.principal_id
    WHERE dp.sid = 0x' + CONVERT(VARCHAR(MAX), @LoginSID, 2) + '
END
'
FROM sys.databases
WHERE state_desc = 'ONLINE'
  AND name NOT IN ('tempdb');

-- Ausführen
EXEC sp_executesql @sql;

-- Ausgabe
SELECT * FROM #LoginMappings
ORDER BY DatabaseName, DatabaseUserName, RoleName;

-- Aufräumen
DROP TABLE #LoginMappings;

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Übersicht aller Datenbankmappings und zugehöriger Datenbankrolle nach User
17.04.2025 13:48:53 SQL Repo
NotSolved
17.04.2025 14:08:16 Gast98666
NotSolved