Оператор CREATE AUDIT

Cовершенно не понимаю людей, с маниакальным упорством норовящих всякий раз очистить историю посещенных страниц в IE или список открывавшихся документов в MS Office или и т.д. Давно миновали досовские времена, когда персональный компьютер использовался в отношении 1-ко-многим из расчета на всех работающих в отделе персон. Возможно, в некоторых учреждениях это практикуется до сей поры, причем все заходят под одним эккаунтом или входят в какую-нибудь административную группу, позволяющую смотреть профили друг друга, не знаю. Разбираемый сегодня вопрос из той же серии. Когда вы заходите в Business Intelligence Development Studio (BIDS) и говорите File -> Open Analysis Services Database, в диалоге высвечивается список многомерных баз, которые вы открывали отсюда ранее. Причем база может быть давно убита и сам сервер снесен, но Visual Studio продолжает заботливо хранить список предыдущих коннектов.

image

рис.1

Отдельные товарищи, впрочем, не в состоянии оценить проявленную о них заботу. Они говорят, вот, допустим, я встречаюсь с клиентами и показываю им решение нашей компании. Вчера я показывал его, например, Ё и из уважения к заказчику назвал демонстрационную базу тоже Ё, а сегодня мне предстоит ехать, скажем, в Ж. Заказчик Ж недолюбливает заказчика Ё, и тот отвечает взаимностью. Если в Ж увидят среди прошлых подключений вчерашнюю базу Ё, они едва ли они купят наше решение. Скорее, меня побьют. Шутка. Да мало ли какие могут быть причины? Как мне очистить этот чертов список?

Стыдно, товарищи. Вместо того, чтобы плакаться в жилетку, достаточно открыть реджистри и поискать по имени базу, чтобы найти ответ на свой вопрос. В реджистри можно найти ответы практически на все вопросы мироздания. Вот формализованная процедура действий.

1) Узнайте свой SID. Открывайте по очереди все длинные сиды в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ и смотрите ProfileImagePath в каждом, пока не наткнетесь на тот, который заканчивается на ваш User Name.

image

рис.2

2) Список прошлых подключений к Analysis Services хранится в HKEY_USERS\<SID>\Software\Microsoft\VisualStudio\9.0\Packages\{4a0c6509-bf90-43da-abee-0aba3a8527f1}\Settings\Analysis Services Project\OnlineProjectMRU. Очистите его, если хотите соблюсти конфиденциальность. Все.

image

рис.3

Там же на рисунке, кстати, и ProjectMRUList имеется. Это список Recent Projects в Visual Studio. На него также можно выйти через HKCU.

В качестве домашнего задания предлагается написать PowerShellьный скрипт, делающий то, что мы проговорили словами.

Аналогичный вопрос относится к SQL Server Management Studio (SSMS). При установлении соединения для нового окна запросов или сервера в Object Explorer открывается диалоговое окно с комбобоксом, в котором на сей раз перечисляются не базы, а имена серверов, с которыми ранее устанавливалось соединение. Но от этого не легче. Как можно его очистить?

image

рис.4

Выше говорилось, что в реджистри можно найти ответы практически на все вопросы мироздания. Это правильно. Ключевое слово здесь "практически". В данном случае поиск по реестру ничего не дает. Это значит, что SSMS хранит историю подключений не в реестре, а где-то в своих конфигурационных файлах. Осталось этот файл найти и уничтожить. Воспользуемся широко известной Руссиновичской тулой Process Monitor из sysinternals (http://technet.microsoft.com/ru-ru/sysinternals/bb896645(en-us).aspx).

image

рис.5

Мы уже предположили, что история, скорее всего, читается из файла. Соответственно, выставляем фильтр Operation = ReadFile. Если залогиниться под другим пользователем, список серверов будет другой, следовательно, искомый файл, скорее всего, находится в профиле текущего пользователя. Поэтому стоит поставить Path like 'C:\Users\%'. Ну и третий фильтр накладываем по текущему ID процессa Ssms.exe. Все. Открываем SSMS, повторяем Рис.4, получаем вот что:

image

рис.6

Логично предположить, что файл имеет отношение к SQL Server, т.е. находится в

C:\Users\Administrator\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell, чем в

C:\Users\Administrator\AppData\Roaming\Microsoft\CLR Security Config\... Остается два кандидата: RegSrvr.xml и SqlStudio.bin. Опытным путем определяем, что это SqlStudio.bin. Если его удалить, комбобокс на рис.4 очищается, а файл пересоздается.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=23704