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

Ansicht des Beitrags:
Von:
Gast98666
Datum:
17.04.2025 14:08:16
Views:
30
Rating: Antwort:
  Ja
Thema:
Übersicht aller Datenbankmappings und zugehöriger Datenbankrolle nach User

verbesserte Version:

 

DECLARE @LoginName NVARCHAR(128) = N'jira-sync-artikel'; -- ← 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 NULL -- ← Hier erlaubt: NULL-Werte für User ohne Rollen
);


-- 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
17.04.2025 13:48:53 SQL Repo
NotSolved
Blau Übersicht aller Datenbankmappings und zugehöriger Datenbankrolle nach User
17.04.2025 14:08:16 Gast98666
NotSolved