16.1.23

Предоставление временных прав с помощью SQL Server Agent Jobs

http://blogs.technet.com/lyudmila_fokina/archive/2009/06/11/sql-server-agent-jobs.aspx

Людмила Фокина

Довольно распространенная ситуация – пользователю срочно нужно получить некоторые данные для отчета; в «нормальной жизни» он не имеет прав просматривать эти данные непосредственно, но в данный момент, например, его коллега (который имеет соответствующие права), в отпуске, отчет нужен уже вчера, все в панике…

Эти коварные "конечные точки"

 http://blogs.technet.com/lyudmila_fokina/archive/2009/05/23/3244802.aspx

Людмила Фокина

Несколько раз сталкивалась с проблемой – в какой-то момент пользователь теряет право login-а в SQL Server. Никаких видимых причин – изменения прав, удаления login-а – а пользователь получает ошибку “Login failed”.

В чем была причина, в тех случаях, о которых идет речь…

Представим следующий сценарий:

SQL injection атаки

http://blogs.technet.com/lyudmila_fokina/archive/2008/05/31/web.aspx


Людмила Фокина

Вот здесь собрана информация об участившихся последнее время SQL injection атаках, а также рекомендации по предотвращению таковых: http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx

Все на английском. Резюме: С конца прошлого года сейчас идет уже четвертая волна SQL injection атак на Web приложения. Эти атаки не результат каких-либо уязвимостей в SQL Server или IIS; атаки используют уязвимости самих Web приложений. Основная схема атак: нахождение Web приложений дающих пользователям достаточные права на SQL Server-е и исполнение примерно следующего кода:

Ошибка ”login failed for user …”: что делать?

http://blogs.technet.com/lyudmila_fokina/archive/2008/05/30/login-failed-for-user.aspx


Людмила Фокина

Диагностика ошибок аутентификация в SQL Server может оказаться весьма проблематичной (и мы работаем над ее улучшением J) и этому есть несколько причин. Из соображений безопасности мы не хотим возвращать пользователю подробное описание проблемы. Более подробную информацию о причине ошибки можно найти в журнал регистрации ошибок. Например:

SQL Server 2005: права доступа типа – Control

http://blogs.technet.com/lyudmila_fokina/archive/2007/07/03/sql-server-2005-control.aspx

Людмила Фокина

Знаете ли Вы что… В SQL Server 2005 возможно дать пользователю права доступ типа Control к объекту (таблице, виду и т.д.), который фактически дает те же права, что и у собственника объекта.

Использование оператора OUTPUT для отслеживания изменений DML

http://blogs.technet.com/lyudmila_fokina/archive/2007/06/23/output-dml.aspx

Людмила Фокина

Знаете ли вы, что… Вы можете отслеживать изменения данных без использования триггеров: В SQL Server 2005 оператор OUTPUT является частью синтаксиса DML предложений.

Исполнения T-SQL команд на удаленном сервере с помощью EXECUTE AT

http://blogs.technet.com/lyudmila_fokina/archive/2007/06/14/t-sql-execute-at.aspx


Людмила Фокина

Ну, вот. С индексами разобрались. Теперь, как и обещала, короткие (и не очень) сообщения в стиле «Tips & Tricks». Знаете ли вы, что… В предыдущих версиях SQL Server (до SQL Server 2005) команду EXECUTE можно было выполнять только на локальном сервере. В SQL Server 2005 команда EXECUTE имеет параметр AT, который используется для выполнения EXECUTE на удаленном linked сервере.

Построение индексов – часть 7: Фоновое построение индексов (Часть 2)

http://blogs.technet.com/lyudmila_fokina/archive/2007/06/06/7-2.aspx


Lyudmila Fokina

Последовательность фонового построения индекса:

    1.   Ждем пока завершаться исполняющиеся на данный момент DML операции;

  1. Берем Intend Share (IS) блокировку на таблицу - эта блокировка будет держаться до конца построения индекса, что ограничивает набор операций выполняемых в параллель с построением индекса. (Например: truncate table, BCP операции будут недоступны); 
  2. Берем Share (S) блокировку, чтобы просканировать таблицу. Эта блокировка держится в течении короткого времени; любые параллельные операции на данных невозможны в этот период;
  3. Отпускаем Share блокировку; 
  4. Собственно построение индекса – сканирование, сортировка, построение индексного дерева; 
  5. Если нужно перестроит некластерные индексы* – возвращаемся к шагу 2 и повторяем для каждого индекса;
  6. Заканчиваем построение:

Построение индексов – часть 7: Фоновое построение индексов (Часть 1)

http://blogs.technet.com/lyudmila_fokina/archive/2007/05/25/7-1.aspx


Людмила Фокина

В SQL Server 2005 стало возможно строить, перестраивать и удалять* индексы фоновом режиме. Это позволяет проводить текущее обслуживание, не прерывая основной работы. Опция «ONLINE» делает возможным параллельный доступ к данным таблицы/индекса во время построения/перестроения индекса. Например, когда один пользователь перестраивает кластерный индекс, другой пользователь может получать и обновлять данные таблицы, для которой перестраивается индекс. Для сравнения: при автономном построении индекса, построитель индекса держит эксклюзивную блокировку на таблицу и индекс в течение всего времени построения, что не дает получать или обновлять данные таблицы/индекса.

Запоздалое вступление - Типы построения индексов - Часть 2 (секционированные индексы)

http://blogs.technet.com/lyudmila_fokina/archive/2006/11/21/524236.aspx

Людмила Фокина

-         Построение секционированных или построение несекционированных индексов:

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

Запоздалое вступление - Типы построения индексов - Часть 1

http://blogs.technet.com/lyudmila_fokina/archive/2006/11/21/523219.aspx


Людмила Фокина

Коллеги! Мне тут было сделано справедливое замечание (offline J), что я начала рассказывать о различных планах построения индексов, не дав краткого предварительного обзора того, какие типы индексов (с точки зрения их построения) существуют и чем они отличаются. Например, фоновое построение индекса и секционированные индексы – это новые возможности SQL Server 2005, и не у всех была возможность с ними уже ознакомиться.

Построение индексов – часть 6: построение секционированного индекса (Продолжение – Невыровненные индексы)

http://blogs.technet.com/lyudmila_fokina/default.aspx

Людмила Фокина

Параллельное построение невыровненных секционированных индексов

В одном из предыдущих постов я писала, что существуют две категории секционированных индексов: