Waiting for you to have the necessary permissions, use:
DECLARE @databaseName sysname
,@databaseDate VARCHAR(50)
,@databaseSize NUMERIC(9, 3)
,@SQL VARCHAR(MAX);
DECLARE @CONSOLIDADO TABLE
(
[Nombre] VARCHAR(100)
,[Usuario] VARCHAR(100)
,[Fecha Creacion] VARCHAR(50)
,[Tamaño MB] NUMERIC(9, 3)
);
DECLARE databaseCursor CURSOR
FOR
SELECT name
,LEFT(DATENAME(WEEKDAY, create_date), 10) + ' '
+ CONVERT(VARCHAR(10), create_date, 105)
,(
SELECT SUM((size * 8) / 1024.00)
FROM sys.master_files
WHERE database_id = db.database_id
)
FROM sys.databases db;
OPEN databaseCursor;
FETCH NEXT FROM databaseCursor
INTO @databaseName
,@databaseDate
,@databaseSize;
WHILE (
@@FETCH_STATUS = 0
)
BEGIN
SET @SQL
= N'SELECT ''' + @databaseName + '''
,p.name
,''' + @databaseDate + '''
,''' + CONVERT(VARCHAR(9), @databaseSize) + '''
FROM ' + @databaseName
+ '.sys.database_role_members m
INNER JOIN ' + @databaseName
+ '.sys.database_principals p on m.member_principal_id = p.principal_id
WHERE
USER_NAME(role_principal_id) IN (''db_owner'')
AND p.name NOT IN (''dbo'')';
INSERT INTO @CONSOLIDADO
EXEC(@SQL);
FETCH NEXT FROM databaseCursor
INTO @databaseName
,@databaseDate
,@databaseSize;
END;
CLOSE databaseCursor;
DEALLOCATE databaseCursor;
SELECT *
FROM @CONSOLIDADO;