См. Вопрос здесь о том, как получить список баз данных, доступных для вошедшего в систему пользователя:
SELECT name
FROM sys.sysdatabases
WHERE HAS_DBACCESS(name) = 1
Для реализации этого в LINQ требуется опубликовать представление sysdatabases
в собственном представлении. Я бы порекомендовал создать представление для работы в одной из баз данных:
CREATE VIEW [dbo].[vewDatabases]
AS
SELECT name
FROM sys.sysdatabases
WHERE HAS_DBACCESS(name) = 1
GO
Добавьте это к вашей модели данных LINQ, и вы сможете выбрать из нее, например, так: [c #]:
var databaseNames = serverDataContext.vewDatabases.Select(a => a.name);
Затем вы можете заполнить DropDownList
содержимым databaseNames.