Содержание

Основы администрирования SQL Server (шпаргалка начинающего администратора)

SQL Server для чайников

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

Почему компании не хотят нанимать Junior DBA

Базы данных являются центральным ядром многих компаний, они хранят в себе платежи, личные данные и корпоративную информацию, без которой существование организации станет невозможным. Компании стремятся уменьшить риски потери или утечки информации и не хотят брать на роль DBA сотрудников без опыта работы. По этой причине компании более склонны обучить своих сотрудников, чем брать начинающего DBA (Junior DBA).

Обычно, большие компании берут Junior DBA на определённую работу, которая, как правило, низкоквалифицирована и направлена на помощь опытным администраторам баз данных (Senior DBA). В такой компании вы можете столкнуться с тем, что вам будет сложно пробиться дальше, так как никто не хочет терять работу, но для стажа работы и некоторого опыта общения этот вариант может быть интересен.

Сертификация не так полезна для Junior DBA

Не стремитесь к сертификатам в начале вашей карьеры. Сертификат — это как украшение новогодней Ёлки, но если ёлка не может устойчиво стоять, то украшения ей не помогут. Сертификат будет служить дополнительным плюсом при поиске работы, но не тратьте на него времени, если у вас нет базовых знаний администрирования.

Когда полезна сертификация

  1. Для прохождения первых этапов отбора
  2. Для принятия решения в вашу пользу если кандидаты одинаковы
  3. Для поддержания вашего интереса к технологии
  4. Необходим для организаций, где есть тендеры

Как выбрать место работы для Junior DBA

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

Чтобы стать Senior DBA вам необходимо постоянно развиваться. Вот несколько вариантов как вы можете это делать:

  1. Посещать курсы
  2. Посещать мероприятия
  3. Читать сайты и форумы
  4. Задавать вопросы на форумах и сайтах
  5. Смотреть обучающее видео
  6. Старайтесь делать на работе больше, чем вас просят (изучать каждую тему глубже)

Пора переходить к нашей теме.

Что нужно знать начинающим администраторам БД:

  1. Модели восстановления (обязательная тема для любого кто планирует заниматься работой администратора баз данных. Эту тему надо понимать в полном объёме (FULL,LOG) (https://msdn.microsoft.com/ru-ru/library/ms189275.aspx)
    — FULL https://technet.microsoft.com/ru-ru/library/ms190217(v=sql.105).aspx
    — LOG https://technet.microsoft.com/ru-ru/library/ms191164.aspx
  2. После изучения моделей восстановления, обязательно проведите самостоятельное тестирование с полным и частичным восстановлением (Restore)
  3. Безопасность уровня БД и сервера
  4. Изучение лога ошибок
  5. Конфигурация и установка
  6. Простые запросы
  7. Базовые понятия производительности сервера (плохо ему или хорошо)
  8. Индексы и статистика
  9. CHECKDB
  10. Варианты отказоустойчивости (Log Shipping, Mirroring, Failover Cluser, AlwaysOn). Отказоустойчивость ни в коем случае не отменяет необходимость делать резервные копии

Советы начинающим администраторам БД

  1. Делайте Backup перед любыми изменениями в БД
  2. Если вы выполняете добавление, обновление или удаление данных, то можно явно открыть транзакцию BEGIN TRANSACTION > выполнить ваш код > прочитать таблицу с параметром NOLOCK (позволяет читать незафиксированные данные) SELECT * FROM MyTable WITH (NOLOCK) > если всё прошло успешно, можно зафиксировать транзакцию — COMMIT TRANSACTION
  3. Пишите комментарии, они не раз помогут вам при разборе вашего кода, когда вы вернётесь к нему спустя некоторое время
  4. Скачайте для практики SQL Server Developer Edition (2014/16 бесплатны). Данная редакция имеет только одно ограничение — запрет на использование в продуктивных системах, что позволит вам практиковаться на всех компонентах SQL Server.
  5. Старайтесь отслеживать любые изменения на сервере БД, так как отвечать придётся именно вам, даже если изменения сделали другие
  6. Не вносите критические изменения, которые могут повлиять на производительность или доступность системы, без согласования с пользователями и вашим руководством

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

Вам так же будет полезно изучить вопросы для собеседование на позицию Администратор MS SQL SERVER

Facebook

Twitter

Вконтакте

Google+

sqlcom.ru

SQL Server: основные концепции для администраторов Windows | Windows IT Pro/RE

Для тех, кто управляет SQL-сервером, но не различает таблицу и индекс

Далеко не всегда на предприятиях средних размеров существуют администраторы баз данных (DBA). В таких организациях работы по управлению и обслуживанию Microsoft SQL Server ложатся на плечи администратора серверов Windows. Администрирование SQL Server может вызвать определенные затруднения у тех, кто недостаточно хорошо разбирается в этом продукте. Тем, кто не знает, с чего начать изучение SQL Server, очень рекомендую обратить внимание на эту статью. В ней я познакомлю читателей с основами этого продукта, а знание основ поможет эффективно управлять SQL Server в подразделении или на малом предприятии. Статья будет состоять из двух частей; в первой содержится важная начальная информация и объясняется назначение основных компонентов SQL Server. Во второй части, которая будет опубликована в следующем выпуске Windows IT Pro, мы рассмотрим важнейшие средства управления SQL Server и выделим опорную точку, с которой можно начать формировать собственную стратегию обеспечения безопасности и создания резервных копий базы данных SQL Server.

Начало начал

Первым шагом в установке системы с SQL Server является выделение необходимого количества памяти. Системы баз данных требовательны к размеру оперативной памяти, и SQL Server не является исключением. Для систем, обслуживающих подразделения внутри организации, абсолютный минимум памяти должен составлять 512 Mбайт. Более крупным системам требуется соответственно больше памяти. Учитывая сегодняшние цены на оперативную память, можно свободно добавить 1 или 2 Гбайт в систему с SQL Server за сравнительно небольшие деньги. Инвестиции в дополнительную память решат проблемы производительности, которая может быть оценена в терминах сокращения времени решения проблем и производительности конечных пользователей.

Разработчики Microsoft сделали SQL Server 2000 легким в установке и запуске. Однако я не рекомендую выбирать самый простой путь — установки по умолчанию. Например, если во время установки отдельного экземпляра (instance) SQL Server выбрать установки по умолчанию, в результате получим систему, производительность которой ниже оптимальной. По умолчанию программа установки SQL Server создает файлы базы данных и файлы журнала на одном и том же диске. Чтобы добиться повышения производительности SQL Server, лучше расположить эти файлы на разных дисках. Таким образом, первое, что необходимо сделать при установке, это убедиться в том, что SQL Server имеет достаточное количество дисков. Как минимум, нужно иметь три диска. Один для операционной системы, другой — для файлов данных и третий — для файла журналов. На рис. 1 показана типичная конфигурация дисков для малых и среднемасштабных установок SQL Server. В этом примере приведена система, состоящая из восьми дисков. Здесь операционная система, файлы данных и файлы журналов располагаются на разных дисках. Для обеспечения отказоустойчивости операционная система и файлы журнала используют зеркалирование. Файлы данных используют чередование данных по RAID 5 для обеспечения эффективности работы хранилища. Для максимальной защиты данных вместо RAID 5 можно использовать RAID 1 для дисков с данными. Однако это решение обходится существенно дороже по сравнению с RAID 5, поскольку зеркалирование требует вдвое большего дискового пространства по сравнению с объемом хранимых данных. Дисковые приводы SCSI превосходят по производительности и скорости приводы IDE, поэтому использование таких дисков положительно сказывается на производительности всей системы.

Рисунок. Типовая конфигурация дисковой системы для малых и среднемасштабных систем SQL Server 2000

Для лучшей восстанавливаемости системы необходимо зеркалировать файлы журнала. Популярная конфигурация для установки SQL сервера следующая: RAID 1 для дисковых томов, содержащих файлы журналов, и RAID 5 для томов, содержащих файлы данных. Возможно, вы захотите иметь еще один дополнительный диск, на котором будете выполнять трассировку и другие диагностические операции. Наконец, из соображений обеспечения безопасности и приемлемой производительности лучше установить SQL Server на выделенный сервер, а не на контроллер домена.

Другим важным решением при установке SQL Server является тип авторизацию. SQL Server поддерживает два типа авторизации: через Windows (Windows authentication) и авторизацию встроенными средствами SQL Server (mixed-mode). При авторизации через Windows SQL Server проверяет входящие учетную запись и пароль, применяя пользовательскую учетную запись и пароль Windows. При авторизации через SQL Server необходимо создавать и поддерживать отдельный набор учетных записей внутри SQL Server. Хотя каждый тип имеет свои преимущества и недостатки, обычно по возможности используют авторизацию Windows. Авторизация через Windows позволяет содержать только один набор паролей и учетных записей, а приложения, которые подключаются к SQL Server, не нуждаются во время соединения во вводе дополнительных учетных данных и паролей. Windows обеспечивает проверку достоверности учетных записей и паролей и предоставляет соответствующие разрешения. Наконец, следует убедиться, что для учетной записи пользователя SA создан сложный пароль. Многие из вредоносных программ специально разработаны в расчете на то, что пользователь SA не имеет пароля. Нельзя оставлять пароль SA пустым или использовать легко угадываемые значения типа SA или password.

Основы SQL Server

Возможно, процесс управления SQL Server 2000 покажется вам не таким уж сложным, когда вы поймете, как работает продукт. SQL Server после установки содержит четыре системные базы данных (master, model, msdb и tempdb) и две пользовательские базы. База master, наверное, является самой важной из системных баз. Она включает таблицы, которые описывают все другие базы в системе и содержат информацию об учетных записях и параметрах безопасности. База model содержит шаблоны для всех новых баз. Все базы, создающиеся на сервере, наследуют все установки из базы model. База msdb используется SQL Server Agent для хранения информации о расписании заданий. В ней также хранится информация о резервных копированиях и репликациях. База tempdb хранит временные рабочие таблицы. Объекты в базе tempdb присутствуют до тех пор, пока пользователь, который создал их, зарегистрирован в системе.

Две пользовательские базы, Pubs и Northwind, задействованы в качестве примеров. База Pubs — база, структурирующая информацию в виде автор-публикация, содержит примеры информации о списке авторов, их книгах и издателях. База Northwind подобна учебной базе с тем же названием в Microsoft Access. Она содержит примеры информационных форм о продажах фиктивной компании Northwind Traders. Хотя Northwind не так велика по размеру, как обычные базы SQL, она больше, чем игрушечная база Pubs.

Если в обязанности администратора входит только управление SQL Server, а не создание новых баз, то в таком случае нет особой необходимости вникать в детали создания объектов баз данных. Обычно их формируют разработчики в IT-департаменте или поставщики приложений. Однако основные понятия об объектах ядра базы данных, базах данных, таблицах, индексах, представлениях, хранимых процедурах и триггерах могут помочь при решении возникающих проблем.

Базы данных. Базы данных содержат информацию, которую используют приложения. База SQL Server включает набор таблиц, представлений, индексов и хранимых процедур. Каждое из приложений обычно разработано так, что оно соединяется со своей базой. Выделенный SQL Server способен поддерживать множество баз данных (32 767 баз на сервер). База данных SQL Server может разрастаться до очень больших размеров. Максимальный размер базы составляет 1,048,516 Tбайт. Каждая база должна состоять, как минимум, из двух файлов — файла данных и файла журнала. Файл данных содержит таблицы, строки и столбцы информации. Файл журнала содержит все транзакционные операции (INSERT, UPDATE, DELETE), которые выполняли пользователи или приложения при работе с базой. Как уже упоминалось, чтобы гарантировать оптимальную производительность, никогда не следует располагать файлы данных и журнала на одном и том же диске работающей системы. Аналогично не рекомендуется располагать файлы данных и журнала на сжатых или шифрованных дисках.

Во время создания базы данных SQL Server использует копию базы model в качестве шаблона для новой базы. Можно задать максимальный объем, до которого может разрастаться база в мегабайтах или процентах от ее размера. Для большинства установок лучше выбрать режим auto-grow (автоматическое расширение), который позволяет базе при необходимости расширяться автоматически. Если администратор хорошо разбирается в особенностях имеющихся приложений, то примерно должен представлять ожидаемый рост и размеры базы. Тем самым можно избежать автоматического расширения базы во время ее активного использования, что может негативно сказаться на производительности всей системы.

Таблицы. Таблица — основная форма хранения информации в реляционных базах данных. Таблицы содержат различные наборы информации. По существу, например, каждая строка в таблице покупателей будет содержать всю соответствующую информацию для выбранного покупателя. Обычно такая информация включает идентификатор покупателя (customer ID), имя, адрес и контактную информацию. Каждый отдельный фрагмент такой информации (например, номер покупателя) содержится в соответствующем столбце. Каждый столбец может хранить данные только заданного типа. Например, первый столбец в таблице покупателей может быть назван CustomerID. Тип содержащихся в нем данных будет определен как int; это будет означать, что в столбце сохраняются только целочисленные данные. Второй столбец с именем CustomerName может быть определен как varchar(40) — значит, в столбце сохраняются текстовые данные длинной до 40 символов.

Индексы. Основная причина использования индексов — ускорение выполнения запросов. Индексы — это один из выбранных столбцов таблицы. SQL Server использует два типа индексов: кластерные и некластерные. Кластерный индекс определяет порядок данных в таблице. Когда используется кластерный индекс, SQL Server упорядочивает строки в базовой таблице в соответствии с порядком, определяемым кластерными индексами. Каждая таблица может иметь только один кластерный индекс. Некластерные индексы не изменяют порядок строк базовой таблицы, они просто предоставляют альтернативный оптимизированный путь доступа к данным.

Удалить или добавить индексы можно без вмешательства в общую архитектуру базы данных. Хотя первоочередной целью использования индекса является увеличение скорости доступа к данным, использование чрезмерного количества индексов может дать противоположный результат. Когда индекс создан, SQL Server должен обслуживать его (т. е. поддерживать в актуальном состоянии), поскольку данные добавляются в таблицы базы. Процесс, обеспечивающий работу SQL Server, должен не только добавлять данные в таблицу, но и обновлять существующие индексы одновременно с новыми данными. Естественно, чем больше индексов вы создадите, тем дольше будет проходить процесс их обновления. Чрезмерное количество индексов может отрицательно повлиять на производительность всей системы. Одним из общих методов, которые могут улучшить выполнение пакетных заданий, является следующий. Сначала пишется сценарий, удаляющий перед выполнением задания все индексы. Затем пишется другой сценарий, который будет восстанавливать индексы по окончании процедуры. В SQL Server 2000 имеется мастер настройки индексов (Index Tuning Wizard), который анализирует запросы и предлагает индексы, способные улучшить производительность этих запросов.

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

Хранимые процедуры и триггеры. Хранимые процедуры создаются с использованием кода на языке T-SQL. Хранимые процедуры являются основой большинства приложений баз данных. Триггер — это специальный тип хранимой процедуры, которая может быть подключена к таблице. Поскольку хранимые процедуры скомпилированы, они обеспечивают наилучшую производительность по сравнению с динамически выполняемыми процедурами SQL (код SQL, который программа генерирует перед выполнением команды SQL). Когда динамический код SQL выполняется на сервере, процесс, управляющий работой SQL Server, сначала анализирует и проверяет команду, гарантируя тем самым отсутствие ошибок в синтаксисе. Затем создается план, по которому будет осуществляться доступ к данным. Хранимые процедуры позволяют выполнить эту работу на этапе создания данной хранимой процедуры, а не динамически, в процессе работы приложения. Это дает хранимым процедурам значительное преимущество в производительности перед динамическим выполнением кода SQL при работе приложения. SQL Server имеет функцию кэширования запросов. Он может кэшировать отдельные фрагменты динамического кода SQL на определенное время. Однако кэширование не дает никаких гарантий того, что необходимый динамический код все еще будет присутствовать в кэше при следующем его использовании.

Подобно хранимым процедурам, код T-SQL используется и для создания триггеров. В отличие от хранимых процедур, которые могут выполняться любыми пользователями, имеющими необходимые права на эту хранимую процедуру, триггеры запускаются исключительно самой базой данных. Они связываются с таблицами с помощью процедуры CREATE TRIGGER. Кроме того, они запускаются в тот момент, когда над таблицей производятся определенные действия, такие как INSERT, UPDATE или DELETE. Администраторы баз данных обычно используют триггеры для обеспечения целостности ссылок. У вас имеется возможность выполнить последовательные операции удаления DELETE в таблицах, на которые ссылаются строки ссылающейся таблицы. Код триггера запускается только после проверки SQL Server целостности, включая проверки целостности ссылок.

Теперь самое время остановиться и подвести некоторые итоги. Сейчас вы должны знать критерии, по которым выбирают необходимый объем оперативной памяти, и как лучше создать дисковую подсистему SQL Server. Необходимо также понимать назначение основных компонентов SQL Server. Во второй части статьи я более подробно остановлюсь на внутреннем устройстве SQL Server для того, чтобы облегчить вашу работу по совместительству в качестве администратора базы данных.

Майкл Оти — Старший технический редактор Windows & .NET Magazine и президент компании TECA. С ним можно связаться по адресу: [email protected]

SQL Server: основные концепции для администраторов Windows

Поделитесь материалом с коллегами и друзьями

www.osp.ru

сколько стоит администрирование SQL server у фрилансеров

Система управления базами данных MS SQL Server является одной из наиболее надежных в администрировании и конкурентоспособных на рынке. Это творение Майкрософт широко используется как в персональных, так и в крупных базах данных и обладает довольно широкими возможностями. Система SQL Server является абсолютно бесплатной, что также способствует росту ее популярности.

Из преимуществ данной СУБД, можно выделить такие как:

  • Масштабируемость
  • Безопасность управления
  • Наличие инструментов бизнес-аналитики
  • Обширная клиентская база
  • Интеграция с WordPress
  • Множество дополнительных бесплатных функций

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

Обязательно ли администрирование SQL?

Профессиональное администрирование SQL Server является жизненно важной процедурой, поскольку в случае возникновения какой-либо ошибки или неисправности, система будет выдавать неверный результат, а то и вовсе перестанет работать. Поэтому, не стоит пренебрегать услугами профессионального системного администратора, который сможет:

  • Установить систему
  • Настроить SQL Server в соответствии со спецификой работы
  • Подключить систему к локальной сети
  • Выполнить профессиональную поддержку и администрирование
  • Установить необходимую систему защиты

От того насколько качественно выполняется SQL администрирование, зависит и дальнейший успех вашего предприятия.

К кому обращаться за помощью?

Качественное администрирование MS SQL Server сможет выполнить только опытный, дипломированный специалист, который хотя бы пару лет проработал в этой сфере. Интернет технологии довольно хорошо развиты в Москве и Санкт-Петербурге, поэтому поиски системного администратора не составят особого труда. Однако риск присутствует всегда, и в итоге можно столкнуться с некомпетентным специалистом.

Для того чтобы избежать подобных неприятностей, посетите сервис YouDo.com. Здесь вы гарантированно найдете только профессиональных исполнителей готовых взяться за администрирование SQL сервера, а также выполнить такие услуги:

  • Установку и восстановление операционной системы
  • Установку SQL сервера и других продуктов Майкрософт
  • Обновление и переустановку программного обеспечения
  • Создание защищенных сетей
  • Подключение компьютеров к рабочей группе
  • Установку антивирусной защиты
  • Серверное администрирование
  • Разработку систем управления базами данных

Стоимость заказа услуг SQL администрирования также очень демократичная. На странице ниже доступен приблизительный прайс-лист с описанием цен и услуг.

freelance.youdo.com

Как настроить и запустить Microsoft SQL Server

Порой так хочется привести свои мысли в порядок, разложить их по полочкам. А еще лучше в алфавитной и тематической последовательности, чтобы, наконец, наступила ясность мышления. Теперь представьте, какой бы хаос творился в «электронных мозгах» любого компьютера без четкой структуризации всех данных и Microsoft SQL Server:

Данный программный продукт представляет собой систему управления базами данных (СУБД) реляционного типа, разработанную корпорацией Microsoft. Для манипуляции данными используется специально разработанный язык Transact-SQL. Команды языка для выборки и модификации базы данных построены на основе структурированных запросов:


Реляционные базы данных построены на взаимосвязи всех структурных элементов, в том числе и за счет их вложенности. Реляционные базы данных имеют встроенную поддержку наиболее распространенных типов данных. Благодаря этому в SQL Server интегрирована поддержка программного структурирования данных с помощью триггеров и хранимых процедур.


СУБД является частью длинной цепочки специализированного программного обеспечения, которое корпорация Microsoft создала для разработчиков. А это значит, что все звенья этой цепи (приложения) глубоко интегрированы между собой.

То есть их инструментарий легко взаимодействует между собой, что во многом упрощает процесс разработки и написания программного кода. Примером такой взаимосвязи является среда программирования MS Visual Studio. В ее инсталляционный пакет уже входит SQL Server Express Edition.

Конечно, это не единственная популярная СУБД на мировом рынке. Но именно она является более приемлемой для компьютеров, работающих под управлением Windows, за счет своей направленности именно на эту операционную систему. И не только из-за этого.

Преимущества MS SQL Server:

Особенности этой популярной СУБД легче всего прослеживаются при рассмотрении истории эволюции всех ее версий. Более подробно мы остановимся лишь на тех выпусках, в которые разработчики вносили весомые и кардинальные изменения:

  • Microsoft SQL Server 1.0 – вышел еще в 1990 году. Уже тогда эксперты отмечали высокую скорость обработки данных, демонстрируемую даже при максимальной нагрузке в многопользовательском режиме работы;
  • SQL Server 6.0 – вышел в 1995 году. В этой версии впервые в мире была реализована поддержка курсоров и репликации данных;
  • SQL Server 2000 – в этой версии сервер получил полностью новый движок. Большая часть изменений коснулась лишь пользовательской стороны приложения;
  • SQL Server 2005 – увеличилась масштабируемость СУБД, во многом упростился процесс управления и администрирования. Был внедрен новый API для поддержки программной платформы .NET;
  • Последующие выпуски – были направлены на развитие взаимодействия СУБД на уровне облачных технологий и средств бизнес-аналитики.

В базовый комплект системы входит несколько утилит для настройки SQL Server. К ним относятся:

  • SQL Server Configuration Manager:


Диспетчер конфигурации. Позволяет управлять всеми сетевыми настройками и службами сервера базы данных. Используется для настройки SQL Server внутри сети.

  • SQL Server Error and Usage Reporting:


Утилита служит для настройки отправки отчетов об ошибках в службу поддержки Microsoft.

  • SQL Server Surface Area Configuration


Используется для оптимизации работы сервера базы данных. То есть вы можете настроить функционирование SQL Server под свои нужды, включив или отключив определенные возможности и компоненты СУБД.

Набор утилит, входящих в Microsoft SQL Server, может отличаться в зависимости от версии и редакции программного пакета. Например, в версии 2008 года вы не найдете SQL Server Surface Area Configuration.

Для примера будет использована версия сервера баз данных выпуска 2005 года. Запуск сервера можно произвести несколькими способами:

  • Через утилиту SQL Server Configuration Manager. В окне приложения слева выбираем «SQL Server 2005 Services», а справа — нужный нам экземпляр сервера БД. Отмечаем его и в подменю правой кнопки мыши выбираем «Start».

  • С помощью среды SQL Server Management Studio Express. Она не входит в инсталляционный пакет редакции Express. Поэтому ее нужно скачивать отдельно с официального сайта Microsoft.

Для запуска сервера баз данных запускаем приложение. В диалоговом окне «Соединение с сервером» в поле «Имя сервера» выбираем нужный нам экземпляр. В поле «Проверка подлинности» оставляем значение «Проверка подлинности Windows». И нажимаем на кнопку «Соединить»:

Перед тем, как запустить MS SQL Server, нужно кратко ознакомиться с основными возможностями его настройки и администрирования. Начнем с более детального обзора нескольких утилит из состава СУБД:

  • SQL Server Surface Area Configuration – сюда следует обращаться, если нужно включить или отключить какую-либо возможность сервера баз данных. Внизу окна находятся два пункта: первый отвечает за сетевые параметры, а во втором можно активировать выключенную по умолчанию службу или функцию. Например, включить интеграцию с платформой .NET через запросы T-SQL:

  • SQL Server Management Studio – является основным средством администрирования. В этой среде реализована возможность настройки сервера и баз данных, как через интерфейс приложения, так и с помощью запросов на языке T-SQL.

Основные настройки можно осуществить через «Обозреватель объектов», отображающий слева в окне приложения все основные элементы сервера в виде древовидного списка. Самой важной является вкладка «Безопасность». Через нее можно настроить права и роли пользователей и администраторов для основного сервера, или отдельно для каждой базы данных:


Основная часть настроек сервера баз данных доступна в окне «Свойства сервера»:


Как видите, Microsoft SQL Server является настолько мощным средством для структуризации, хранения и модификации данных, что на его изучение потребуется много времени. А в статье мы лишь слегка углубились в основы сервера SQL.

www.internet-technologies.ru

Администрирование SQL Server 2000

Введение

SQL Server 2000 на сегодняшний день является эффективнейшим программным продуктом, который позволят работать со множеством баз данных. Выделяют два основных раздела работы с сервером, каждый из которых можно разделить на более мелкие блоки: администрирование; программирование.

Администрирование в свою очередь можно разделить на две части: администрирование собственно сервера и администрирование баз дан­ных. Так как тема курсовой работы — администрирование баз данных SQL Server 2000, то рассмотрим, прежде всего, именно администрирование баз данных.

Администрирование баз данных представляет собой от­дельную большую, едва ли не главную область работы с SQL Server 2000. Оно включает разработку структуры базы данных, ее реализацию, проектирование системы безопасности, создание пользователей базы данных, предоставление им прав доступа, создание объек­тов и т. д. Кроме того, администратор базы данных должен периодически созда­вать резервные копии, выполнять проверку целостности данных и следить за размером файлов как самой базы данных, так и журнала транзакций. Указан­ный список можно долго продолжать, так как область администрирования баз данных очень обширна и перечисление всех задач администрирования заняло бы очень много времени, поэтому остановимся на основных задачах администратора.

Первая большая задача, которая встает перед любым администратором или разработчиком, это проектирование структуры базы данных. Нерационально спроектированная база данных в дальнейшем доставит много проблем рабочего характера, как администратору, так и про­граммистам и пользователям. Поэтому следует ответственно отнестись к разработке базы данных, сразу же продумывая различные варианты использо­вания данных, а также возможности интеграции с дополнительными системами и доступа к данным с помощью различных технологий. А так же учитывать возможную необходимость внесения в будущем изменений в структуру базы.

Существует множество технологий и методов разработки баз данных, рассмот­рение которых достойно отдельной большой работы. Для более детального знакомства с теорией реляционных баз данных и построением баз данных с использованием ER-диаграмм необходимо обратиться к специализированной литературе, посвя­щенной этим вопросам. Для понимания теории реляционных баз данных, кото­рая является доминирующей в настоящее время, необходимо хорошее знание математики, так как в основе реляционной модели данных лежат математичес­кие объекты.

В широком смысле слова база данных — это совокупность сведений о конкрет­ных объектах реального мира в какой-либо предметной области. Под предмет­ной областью принято понимать часть реального мира, подлежащего изучению для организации управления и, в конечном счете, автоматизации. Примером может служить предприятие, вуз и т. д. Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извле­кать нужные сведения с произвольным сочетанием признаков. Сделать это можно, только если данные структурированы.

База данных — поименованная совокупность взаимосвязанных данных, находящихся под управле­нием системы управления базами данных (СУБД). СУБД это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и орга­низации поиска в них необходимой информации.

Основная задача базы данных — хранить и при необходимости представлять по первому требованию пользователей все необходимые данные в одном месте, исключая их повторение и избыточность.

Централизованный характер управления данными в базе данных предпола­гает существование некоторого лица (группы лиц), на которое возлагаются функ­ции администрирования данных, хранимых в базе.

Различают централизованные и распределенные базы данных. Распределенная база данных состоит из нескольких частей, хранимых в раз­личных ЭВМ вычислительной сети. Этот способ обработки подразумевает наличие нескольких серверов, на которых может храниться пересекающая­ся или даже дублирующаяся информация. Для работы с такой базой дан­ных используется система управления распределенными базами данных (СУРБД).

Централизованная база данных хранится в памяти одной вычислительной системы, то есть база данных располагается на одном компьютере. Если для это­го компьютера установлена поддержка сети, то множество пользователей с кли­ентских компьютеров могут одновременно обращаться к информации, хранящейся в центральной базе данных. В локальных сетях чаще всего исполь­зуется именно такой способ обработки данных. Системы централизованных баз данных могут существенно различаться в зависимости от их архитектуры.[1]

Администрирование SQL Server 2000

Файл-сервер

БД располагается на файл-сервере (или нескольких файл-сер­верах), в качестве которого может использоваться наиболее мощная из рабочих станций, объединенных в сеть. Функции файл-сервера заключаются, в ос­новном, в хранении БД и обеспечении доступа к ним пользователей, рабо­тающих на различных компьютерах. Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где в основ­ном и производится обработка. Переданные данные обрабатываются СУБД, которая находится опять же на компьютерах пользователей. После того как пользователи выполнят необходимые изменения данных, они ко­пируют файлы обратно на файл-сервер, где другие пользователи, в свою очередь, могут снова их использовать. Кроме того, каждый пользователь может создавать на локальном компьютере свои собственные базы данных, используемые им монопольно. Эта схема работает при не очень больших объемах данных. При увеличении числа компьютеров в сети или росте БД производительность резко падает. Это связано с увеличением объема дан­ных, передаваемых по сети, так как вся обработка происходит на компью­тере пользователя. Явным недостатком подобного подхода является высокая вероятность потери изменений, выполненных одними пользователями, при сохранении измененных файлов на центральный сервер.[2] Дело в том, что пользователи могут и не подозревать, что помимо них еще кто-то изменял данные. Примерами СУБД, предназначенными непосредственно для разра­ботки локальных пользовательских приложений БД, то есть приложений, работающих на одном локальном компьютере либо в компьютерной, сети являются: Microsoft Visual FoxPro, Microsoft Access,Paradox,fpr Windows, dBase for Windows и др.

Клиент-сервер. Технология клиент-сервер подразумевает, что помимо хра­нения базы данных центральный компьютер (сервер базы данных) должен обеспечивать выполнение основного объема обработки данных. При техно­логии клиент-сервер запрос на выполнение операции с данными (напри­мер, обычная выборка), выдаваемый клиентом (рабочей станцией), порождает на сервере поиск и извлечение данных. Извлеченные данные (но не фай­лы) транспортируются по сети от сервера к клиенту. Система, использующая технологию клиент-сервер, разделяется на две части: клиент­ская часть (front-end) обеспечивает графический интерфейс и находится на компьютере пользователя; серверная часть (back-end), которая находит­ся на специально выделенных компьютерах, обеспечивает управление дан­ными, разделение информации, администрирование и безопасность. Примерами СУБД технологии клиент-сервер являются Microsoft SQL Server, Oracle, IBM DB2, Sybase и др. Спецификой архитектуры клиент-сервер является использование специального языка структурированных запросов (Structured Query Language, SQL), обеспечивающего пользовате­ля простым и эффективным инструментом доступа к данным.[3]

Помимо подразделения баз данных по методам обработки можно классифици­ровать их по используемой модели (или структуре) данных. Модель данных — совокупность структур данных и операций по их обработке. С помощью модели данных можно наглядно представить структуру объектов и установленные меж­ду ними связи. Для терминологии моделей данных характерны понятия «эле­мент данных» и «правила связывания». Элемент данных описывает любой на­бор данных, а правила связывания определяют алгоритмы взаимосвязи элементов данных. К настоящему времени разработано множество различных моделей дан­ных, но на практике используется три основных. Выделяют иерархическую, сетевую и реляционную модели данных. Соответственно говорят об иерархичес­ких, сетевых и реляционных СУБД.

Иерархическая модель данных. Иерархически организованные данные встре­чаются в повседневной жизни очень часто. Например, структура высшего учеб­ного заведения — это многоуровневая иерархическая структура. Иерархичес­кая (древовидная) БД состоит из упорядоченного набора элементов. В этой модели исходные элементы порождают другие элементы, причем эти элементы в свою очередь порождают следующие элементы. Каждый порожденный эле­мент имеет только один порождающий элемент.

Организационные структуры, списки материалов, оглавление в книгах, пла­ны проектов и многие другие совокупности данных могут быть представле­ны в иерархическом виде. Автоматически поддерживается целостность ссы­лок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя.

Основным недостатком данной модели является необходимость использова­ния той иерархии, которая была заложена в основу БД при проектировании. Потребность в постоянной реорганизации данных (а часто невозможность этой реорганизации) привели к созданию более общей модели — сетевой.

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

mirznanii.com

Имена входа и пользователи | Microsoft Docs

  • Время чтения: 11 мин

В этой статье

После настройки правил брандмауэра можно подключиться к базе данных SQL и хранилищу данных SQL Azure в качестве одной из учетных записей администратора, владельца или пользователя базы данных в базе данных.After firewall rules configuration, you can connect to Azure SQL Database and SQL Data Warehouse as one of the administrator accounts, as the database owner, or as a database user in the database.

Примечание

Этот раздел относится к серверу SQL Azure, а также к базам данных SQL и хранилищам данных SQL, созданным на сервере SQL Azure.This topic applies to Azure SQL server, and to SQL Database and SQL Data Warehouse databases created on the Azure SQL server. Для простоты база данных SQL используется как для базы данных SQL, так и для хранилища данных SQL.For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

Административные учетные записи с неограниченным доступомUnrestricted administrative accounts

В качестве администратора выступают две учетные записи (администратор сервера и администратор Active Directory).There are two administrative accounts (Server admin and Active Directory admin) that act as administrators. Чтобы определить эти учетные записи администратора для сервера SQL Server, откройте портал Azure и перейдите на вкладку «Свойства» сервера SQL или базы данных SQL.To identify these administrator accounts for your SQL server, open the Azure portal, and navigate to the Properties tab of your SQL server or SQL Database.

  • Администратор сервераServer admin

    При создании сервера Azure SQL Server необходимо назначить имя для входа администратора сервера.When you create an Azure SQL server, you must designate a Server admin login. SQL Server создает эту учетную запись в качестве имени для входа в базе данных master.SQL server creates that account as a login in the master database. Эта учетная запись подключается с использованием проверки подлинности SQL Server (с предоставлением имени пользователя и пароля).This account connects using SQL Server authentication (user name and password). Может существовать только одна такая учетная запись.Only one of these accounts can exist.

    Примечание

    Чтобы сбросить пароль администратора сервера, на портале Azure щелкните Серверы SQL, выберите в списке сервер и щелкните Сбросить пароль.To reset the password for the server admin, go to the Azure portal, click SQL Servers, select the server from the list, and then click Reset Password.

  • Администратор Azure Active DirectoryAzure Active Directory admin

    Одной отдельной учетной записи или учетной записи группы безопасности Azure Active Directory также можно предоставить права администратора.One Azure Active Directory account, either an individual or security group account, can also be configured as an administrator. В целом проводить настройку администратора Azure AD необязательно, но если вы хотите использовать учетные записи Azure AD для подключения к базе данных SQL, администратор Azure AD обязательно должен быть настроен.It is optional to configure an Azure AD administrator, but an Azure AD administrator must be configured if you want to use Azure AD accounts to connect to SQL Database. Дополнительные сведения о настройке доступа Azure Active Directory см. в статьях Подключение к базе данных SQL или хранилищу данных SQL c использованием проверки подлинности Azure Active Directory и Поддержка SSMS в Azure AD MFA для базы данных SQL и хранилища данных SQL.For more information about configuring Azure Active Directory access, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication and SSMS support for Azure AD MFA with SQL Database and SQL Data Warehouse.

Учетные записи администратора сервера и администратора Azure AD имеют следующие характеристики.The Server admin and Azure AD admin accounts have the following characteristics:

  • Это единственные учетные записи, которые могут автоматически подключаться к любой базе данных SQL на сервере.Are the only accounts that can automatically connect to any SQL Database on the server. (Для подключения к пользовательской базе данных другие учетные записи должны иметь права владельца базы данных или в пользовательской базе данных должна находиться пользовательская учетная запись.)(To connect to a user database, other accounts must either be the owner of the database, or have a user account in the user database.)
  • Эти учетные записи входят в пользовательские базы данных в качестве пользователя dbo. Они обладают всеми разрешениями в пользовательских базах данных.These accounts enter user databases as the dbo user and they have all the permissions in the user databases. (Владелец пользовательской базы данных также входит в базу данных в качестве пользователя dbo.)(The owner of a user database also enters the database as the dbo user.)
  • Не входят в базу данных master в качестве пользователя dbo. Для них назначены ограниченные разрешения в базе данных master.Do not enter the master database as the dbo user, and have limited permissions in master.
  • Не являются членами предопределенной роли sysadmin стандартного сервера SQL Server, недоступной в базе данных SQL.Are not members of the standard SQL Server sysadmin fixed server role, which is not available in SQL database.
  • Могут создавать, изменять и удалять базы данных, имена для входа, пользователей в базе данных master и правила брандмауэра для IP-адресов на уровне сервера.Can create, alter, and drop databases, logins, users in master, and server-level IP firewall rules.
  • Могут добавлять и удалять членов в ролях dbmanager и loginmanager.Can add and remove members to the dbmanager and loginmanager roles.
  • Могут просматривать системную таблицу sys.sql_logins.Can view the sys.sql_logins system table.
  • Не может быть переименован.Cannot be renamed.
  • Чтобы изменить учетную запись администратора Azure AD, используйте портал или Azure CLI.To change the Azure AD admin account, use the Portal or Azure CLI.
  • После этого невозможно изменить учетную запись администратора сервера.The Server Admin account cannot be changed afterwards.

Настройка брандмауэраConfiguring the firewall

Если брандмауэр на уровне сервера настроен для отдельного IP-адреса или диапазона IP-адресов, то администратор SQL Server и администратор Azure Active Directory смогут подключаться к базе данных master и всем пользовательским базам данных.When the server-level firewall is configured for an individual IP address or range, the SQL server admin and the Azure Active Directory admin can connect to the master database and all the user databases. Первоначальный брандмауэр уровня сервера можно настроить на портале Azure, с помощью PowerShell или REST API.The initial server-level firewall can be configured through the Azure portal, using PowerShell or using the REST API. После подключения также можно настроить дополнительные правила брандмауэра для IP-адресов на уровне сервера с помощью инструкции Transact-SQL.Once a connection is made, additional server-level IP firewall rules can also be configured by using Transact-SQL.

Путь доступа администратораAdministrator access path

При правильной настройке брандмауэра на уровне сервера администратор SQL Server и администратор Azure Active Directory смогут подключаться с помощью таких клиентских средств, как SQL Server Management Studio или SQL Server Data Tools.When the server-level firewall is properly configured, the SQL server admin and the Azure Active Directory admin can connect using client tools such as SQL Server Management Studio or SQL Server Data Tools. Все функции и возможности доступны только в последних версиях средств.Only the latest tools provide all the features and capabilities. На схеме ниже показана типичная конфигурация для двух учетных записей администраторов.The following diagram shows a typical configuration for the two administrator accounts.

При использовании открытого порта брандмауэра серверного уровня администраторы могут подключаться к любой базе данных SQL.When using an open port in the server-level firewall, administrators can connect to any SQL Database.

Подключение к базе данных с помощью SQL Server Management StudioConnecting to a database by using SQL Server Management Studio

Пошаговые инструкции по созданию сервера, базы данных, правил брандмауэра протокола IP на уровне сервера и использованию SQL Server Management Studio для отправки запросов к базе данных см. в руководстве Начало работы с серверами Базы данных SQL Azure, базами данных и правилами брандмауэра с использованием портала Azure и SQL Server Management Studio.For a walk-through of creating a server, a database, server-level IP firewall rules, and using SQL Server Management Studio to query a database, see Get started with Azure SQL Database servers, databases, and firewall rules by using the Azure portal and SQL Server Management Studio.

Важно!

Чтобы обеспечить синхронизацию с обновлениями Microsoft Azure и Базой данных SQL, рекомендуется всегда использовать последнюю версию Management Studio.It is recommended that you always use the latest version of Management Studio to remain synchronized with updates to Microsoft Azure and SQL Database. Обновите среду SQL Server Management Studio.Update SQL Server Management Studio.

Дополнительные административные роли на уровне сервераAdditional server-level administrative roles

Важно!

Этот раздел не относится к Управляемому экземпляру Базы данных SQL Azure, так как эти роли используются в Базе данных SQL Azure.This section does not apply to Azure SQL Database Managed Instance as these roles are specific to Azure SQL Database.

В дополнение к административным ролям на уровне сервера, обсуждаемым ранее, база данных SQL предусматривает две ограниченные административные роли в базе данных master, к которым можно добавить учетные записи пользователей. Эти роли предоставляют разрешения на создание баз данных или управление входами.In addition to the server-level administrative roles discussed previously, SQL Database provides two restricted administrative roles in the master database to which user accounts can be added that grant permissions to either create databases or manage logins.

Создатели баз данныхDatabase creators

Одной из этих административных ролей является роль dbmanager.One of these administrative roles is the dbmanager role. Участники этой роли могут создавать базы данных.Members of this role can create new databases. Чтобы использовать эту роль, создайте пользователя в базе данных master, а затем добавьте его к роли базы данных dbmanager.To use this role, you create a user in the master database and then add the user to the dbmanager database role. Создавать базу данных могут лица, использующие учетные данные SQL Server в базе данных master, или пользователи автономной базы данных, на основе пользователя Azure Active Directory.To create a database, the user must be a user based on a SQL Server login in the master database or contained database user based on an Azure Active Directory user.

  1. Используя учетную запись администратора, подключитесь к базе данных master.Using an administrator account, connect to the master database.

  2. Создайте имя для входа при проверке подлинности SQL Server с помощью инструкции CREATE LOGIN.Create a SQL Server authentication login, using the CREATE LOGIN statement. Пример инструкции:Sample statement:

    CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
    

    Примечание

    Создавая имя для входа или пользователя автономной базы данных, используйте надежный пароль.Use a strong password when creating a login or contained database user. Дополнительные сведения см. в статье Надежные пароли.For more information, see Strong Passwords.

    Для повышения производительности имена для входа (субъекты уровня сервера) временно кэшируются на уровне базы данных.To improve performance, logins (server-level principals) are temporarily cached at the database level. Сведения об обновлении кэша проверки подлинности см. в статье DBCC FLUSHAUTHCACHE (Transact-SQL).To refresh the authentication cache, see DBCC FLUSHAUTHCACHE.

  3. В базе данных master создайте пользователя, выполнив оператор CREATE USER.In the master database, create a user by using the CREATE USER statement. Пользователь может быть пользователем автономной базы данных с проверкой подлинности Azure Active Directory (если вы настроили среду для проверки подлинности Azure AD) или пользователя автономной проверки подлинности SQL Server или SQL Server пользователя проверки подлинности на основе SQL Server имя входа для проверки подлинности (созданное на предыдущем шаге). Примеры инструкций:The user can be an Azure Active Directory authentication contained database user (if you have configured your environment for Azure AD authentication), or a SQL Server authentication contained database user, or a SQL Server authentication user based on a SQL Server authentication login (created in the previous step.) Sample statements:

    CREATE USER [[email protected]] FROM EXTERNAL PROVIDER; -- To create a user with Azure Active Directory
    CREATE USER Ann WITH PASSWORD = '<strong_password>'; -- To create a SQL Database contained database user
    CREATE USER Mary FROM LOGIN Mary;  -- To create a SQL Server user based on a SQL Server authentication login
    
  4. Добавьте нового пользователя в роль базы данных dbmanager в master с помощью оператора ALTER ROLE.Add the new user, to the dbmanager database role in master using the ALTER ROLE statement. Примеры инструкций:Sample statements:

    ALTER ROLE dbmanager ADD MEMBER Mary; 
    ALTER ROLE dbmanager ADD MEMBER [[email protected]];
    

    Примечание

    Так как dbmanager — это роль базы данных в базе данных master, вы можете назначить роль dbmanager только пользователю базы данных.The dbmanager is a database role in master database so you can only add a database user to the dbmanager role. Невозможно добавить имя входа серверного уровня в роль уровня базы данных.You cannot add a server-level login to database-level role.

  5. При необходимости настройте правило брандмауэра на уровне сервера, чтобы разрешить подключение новому пользователю.If necessary, configure a firewall rule to allow the new user to connect. (К новому пользователю может применяться существующее правило брандмауэра.)(The new user might be covered by an existing firewall rule.)

Теперь пользователь может подключаться к базе данных master и создавать базы данных.Now the user can connect to the master database and can create new databases. Учетная запись, создавшая базу данных, становится владельцем базы данных.The account creating the database becomes the owner of the database.

Диспетчеры входаLogin managers

Другая административная роль — это роль диспетчера входов.The other administrative role is the login manager role. Участники этой роли могут создавать учетные записи в базе данных master.Members of this role can create new logins in the master database. При желании можно выполнить те же действия (создание имени для входа и пользователя и назначение ему роли loginmanager), чтобы разрешить пользователю создавать имена для входа в базу данных master.If you wish, you can complete the same steps (create a login and user, and add a user to the loginmanager role) to enable a user to create new logins in the master. Обычно имена для входа не требуются, так как корпорация Майкрософт рекомендует использовать пользователей автономной базы данных, проверка подлинности которых выполняется на уровне базы данных, а не пользователей с именами для входа.Usually logins are not necessary as Microsoft recommends using contained database users, which authenticate at the database-level instead of using users based on logins. Дополнительные сведения см. в статье Пользователи автономной базы данных — создание переносимой базы данных.For more information, see Contained Database Users — Making Your Database Portable.

Пользователи без прав администратораNon-administrator users

Как правило, учетным записям без прав администратора не требуется доступ к базе данных master.Generally, non-administrator accounts do not need access to the master database. Создайте пользователей автономной базы данных на уровне базы данных с помощью инструкции CREATE USER (Transact-SQL).Create contained database users at the database level using the CREATE USER (Transact-SQL) statement. Пользователь может быть пользователем автономной базы данных с проверкой подлинности Azure Active Directory (если вы настроили среду для проверки подлинности Azure AD) или пользователя автономной проверки подлинности SQL Server или SQL Server пользователя проверки подлинности на основе SQL Server имя входа для проверки подлинности (созданное на предыдущем шаге). Дополнительные сведения см. в статье пользователи автономной базы данных — Создание переносимой базы данных.The user can be an Azure Active Directory authentication contained database user (if you have configured your environment for Azure AD authentication), or a SQL Server authentication contained database user, or a SQL Server authentication user based on a SQL Server authentication login (created in the previous step.) For more information, see Contained Database Users — Making Your Database Portable.

Чтобы создать пользователей, подключитесь к базе данных и выполните инструкции, аналогичные приведенным ниже.To create users, connect to the database, and execute statements similar to the following examples:

CREATE USER Mary FROM LOGIN Mary; 
CREATE USER [[email protected]] FROM EXTERNAL PROVIDER;

Изначально создавать пользователей может только один администратор или владелец базы данных.Initially, only one of the administrators or the owner of the database can create users. Чтобы разрешить другим пользователям создавать пользователей, предоставьте выбранному пользователю разрешение ALTER ANY USER с помощью следующей инструкции.To authorize additional users to create new users, grant that selected user the ALTER ANY USER permission, by using a statement such as:

GRANT ALTER ANY USER TO Mary;

Чтобы предоставить другим пользователям полный доступ к базе данных, сделайте их участником фиксированной роли базы данных db_owner.To give additional users full control of the database, make them a member of the db_owner fixed database role.

Для Базы данных SQL Azure используйте оператор ALTER ROLE.In Azure SQL Database use the ALTER ROLE statement.

ALTER ROLE db_owner ADD MEMBER Mary;

Для Хранилища данных SQL Azure используйте EXEC sp_addrolemember.In Azure SQL Data Warehouse use EXEC sp_addrolemember.

EXEC sp_addrolemember 'db_owner', 'Mary';

Примечание

Предоставить пользователям доступ к нескольким базам данных — это одна из распространенных причин, по которой нужно создать пользователя базы данных на основе имени входа на сервер Базы данных SQL.One common reason to create a database user based on a SQL Database server login is for users that need access to multiple databases. Так как пользователи автономной базы данных являются отдельными сущностями, в каждой базе данных поддерживается отдельный пользователь с собственным паролем.Since contained database users are individual entities, each database maintains its own user and its own password. Это может вызвать дополнительные сложности, поскольку пользователь должен запомнить отдельный пароль для каждой базы данных, а смена паролей при большом количестве баз данных станет нестерпимо тягостной.This can cause overhead as the user must then remember each password for each database, and it can become untenable when having to change multiple passwords for many databases. Но если использовать имена входа SQL Server и высокий уровень доступности (активной георепликации и групп отработки отказа), эти имена входа потребуется задать вручную на каждом сервере.However, when using SQL Server Logins and high availability (active geo-replication and failover groups), the SQL Server logins must be set manually at each server. В противном случае после отработки отказа пользователь базы данных не будет сопоставляться с именем входа на сервере и не сможет получить доступ к базе данных.Otherwise, the database user will no longer be mapped to the server login after a failover occurs, and will not be able to access the database post failover. Дополнительные сведения о настройке имен входа для георепликации см. в статье Настройка безопасности базы данных SQL Azure и управление ею для геовосстановления или отработки отказа.For more information on configuring logins for geo-replication, please see Configure and manage Azure SQL Database security for geo-restore or failover.

Настройка брандмауэра на уровне базы данныхConfiguring the database-level firewall

Пользователям без прав администратора рекомендуется предоставлять доступ к нужным им базам данных только через брандмауэр.As a best practice, non-administrator users should only have access through the firewall to the databases that they use. Вместо авторизации их IP-адресов с помощью брандмауэра уровня сервера и предоставления им доступа ко всем базам данных используйте инструкцию sp_set_database_firewall_rule, чтобы настроить брандмауэр уровня базы данных.Instead of authorizing their IP addresses through the server-level firewall and giving them access to all databases, use the sp_set_database_firewall_rule statement to configure the database-level firewall. С помощью портала нельзя настроить брандмауэр уровня базы данных.The database-level firewall cannot be configured by using the portal.

Путь доступа пользователя без прав администратораNon-administrator access path

При правильной настройке брандмауэра уровня базы данных пользователи базы данных могут подключаться к базе данных с помощью таких клиентских средств, как SQL Server Management Studio или SQL Server Data Tools.When the database-level firewall is properly configured, the database users can connect using client tools such as SQL Server Management Studio or SQL Server Data Tools. Все функции и возможности доступны только в последних версиях средств.Only the latest tools provide all the features and capabilities. На следующей схеме показан типичный путь доступа пользователя без прав администратора.The following diagram shows a typical non-administrator access path.

Группы и ролиGroups and roles

При эффективном управлении доступом используются разрешения, назначенные группам и ролям, а не отдельным пользователям.Efficient access management uses permissions assigned to groups and roles instead of individual users.

  • При использовании проверки подлинности Azure Active Directory поместите пользователей Azure Active Directory в соответствующую группу.When using Azure Active Directory authentication, put Azure Active Directory users into an Azure Active Directory group. Создайте пользователя автономной базы данных для группы.Create a contained database user for the group. Поместите одного или нескольких пользователей базы данных в роль базы данных, а затем назначьте разрешения для этой роли.Place one or more database users into a database role and then assign permissions to the database role.

  • При использовании проверки подлинности SQL Server создайте пользователей автономной базы данных в базе данных.When using SQL Server authentication, create contained database users in the database. Поместите одного или нескольких пользователей базы данных в роль базы данных, а затем назначьте разрешения для этой роли.Place one or more database users into a database role and then assign permissions to the database role.

Роли базы данных могут быть встроенными ролями, например db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter и db_denydatareader.The database roles can be the built-in roles such as db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter, and db_denydatareader. Роль db_owner обычно используется для предоставления полных прав ограниченному числу пользователей.db_owner is commonly used to grant full permission to only a few users. Другие фиксированные роли можно использовать для быстрого получения простых баз данных при разработке, но их не рекомендуется использовать для большинства рабочих баз данных.The other fixed database roles are useful for getting a simple database in development quickly, but are not recommended for most production databases. Например, фиксированная роль базы данных db_datareader предоставляет доступ (как правило, строго обязательный) на чтение к каждой таблице в базе данных.For example, the db_datareader fixed database role grants read access to every table in the database, which is usually more than is strictly necessary. Рекомендуется использовать инструкцию CREATE ROLE , чтобы создавать пользовательские роли базы данных, а затем внимательно предоставлять каждой роли наименьший набор разрешений, необходимый для работы.It is far better to use the CREATE ROLE statement to create your own user-defined database roles and carefully grant each role the least permissions necessary for the business need. Если пользователь является участником нескольких ролей, то ему предоставлены разрешения всех этих ролей.When a user is a member of multiple roles, they aggregate the permissions of them all.

РазрешенияPermissions

Существует более 100 разрешений, которые можно по отдельности предоставлять или отменять в базе данных SQL.There are over 100 permissions that can be individually granted or denied in SQL Database. Многие эти разрешения являются частью других разрешений.Many of these permissions are nested. Например, разрешение UPDATE на схеме включает в себя разрешение UPDATE для каждой таблицы в этой схеме.For example, the UPDATE permission on a schema includes the UPDATE permission on each table within that schema. Как и в большинстве систем разрешений, отмена разрешения переопределяет предоставление.As in most permission systems, the denial of a permission overrides a grant. Так как некоторые разрешения включены в другие разрешения и их достаточно много, необходимо внимательно изучить их, чтобы спроектировать соответствующую систему разрешений, которая будет надежно защищать базу данных.Because of the nested nature and the number of permissions, it can take careful study to design an appropriate permission system to properly protect your database. Изучите список разрешений на этой странице и ознакомьтесь с графическим представлением разрешений.Start with the list of permissions at Permissions (Database Engine) and review the poster size graphic of the permissions.

Рекомендации и ограниченияConsiderations and restrictions

При управлении учетными записями и пользователями в базе данных SQL необходимо учитывать следующее.When managing logins and users in SQL Database, consider the following:

  • Для выполнения инструкций необходимо подключение к базе данныхmasterCREATE/ALTER/DROP DATABASE.You must be connected to the master database when executing the CREATE/ALTER/DROP DATABASE statements.

  • Пользователя базы данных, соответствующего имени для входа администратора сервера, нельзя изменить или удалить.The database user corresponding to the Server admin login cannot be altered or dropped.

  • Языком по умолчанию для имени для входа администратора сервера является американский вариант английского языка.US-English is the default language of the Server admin login.

  • Только администраторы (имя для входа администратора сервера или администратор Azure AD) и участники роли базы данных dbmanager в базе данных master имеют право выполнять инструкции CREATE DATABASE и DROP DATABASE.Only the administrators (Server admin login or Azure AD administrator) and the members of the dbmanager database role in the master database have permission to execute the CREATE DATABASE and DROP DATABASE statements.

  • Необходимо подключение к базе данных master для выполнения инструкций CREATE/ALTER/DROP LOGIN .You must be connected to the master database when executing the CREATE/ALTER/DROP LOGIN statements. В то же время использовать имена входа не рекомендуется.However using logins is discouraged. Вместо них используйте пользователей автономной базы данных.Use contained database users instead.

  • Для подключения к пользовательской базе данных необходимо указать имя базы данных в строке подключения.To connect to a user database, you must provide the name of the database in the connection string.

  • Только имя для входа субъекта уровня сервера и участники роли базы данных loginmanager в базе данных master имеют разрешение на выполнение инструкций CREATE LOGIN, ALTER LOGIN и DROP LOGIN.Only the server-level principal login and the members of the loginmanager database role in the master database have permission to execute the CREATE LOGIN, ALTER LOGIN, and DROP LOGIN statements.

  • При выполнении инструкций CREATE/ALTER/DROP LOGIN и CREATE/ALTER/DROP DATABASE в приложении ADO.NET не разрешается использовать параметризованные команды.When executing the CREATE/ALTER/DROP LOGIN and CREATE/ALTER/DROP DATABASE statements in an ADO.NET application, using parameterized commands is not allowed. Дополнительные сведения можно найти в статье Команды и параметры.For more information, see Commands and Parameters.

  • При выполнении инструкций CREATE/ALTER/DROP DATABASE и CREATE/ALTER/DROP LOGIN каждая из них должна быть единственной инструкцией в пакете Transact-SQL.When executing the CREATE/ALTER/DROP DATABASE and CREATE/ALTER/DROP LOGIN statements, each of these statements must be the only statement in a Transact-SQL batch. В противном случае возникает ошибка.Otherwise, an error occurs. Например, следующая инструкция Transact-SQL проверяет существование базы данных.For example, the following Transact-SQL checks whether the database exists. Если она существует, то вызывается инструкция DROP DATABASE для удаления базы данных.If it exists, a DROP DATABASE statement is called to remove the database. Так как инструкция DROP DATABASE не является единственной инструкцией в пакете, выполнение этой инструкции Transact-SQL приводит к ошибке.Because the DROP DATABASE statement is not the only statement in the batch, executing the following Transact-SQL statement results in an error.

    IF EXISTS (SELECT [name]
             FROM   [sys].[databases]
             WHERE  [name] = N'database_name')
    DROP DATABASE [database_name];
    GO
    

    Вместо этого используйте следующую инструкцию Transact-SQL:Instead, use the following Transact-SQL statement:

    DROP DATABASE IF EXISTS [database_name]
    
  • Если применяется инструкция CREATE USER с параметром FOR/FROM LOGIN, то она должна быть единственной инструкцией в пакете Transact-SQL.When executing the CREATE USER statement with the FOR/FROM LOGIN option, it must be the only statement in a Transact-SQL batch.

  • Если применяется инструкция ALTER USER с параметром WITH LOGIN, то она должна быть единственной инструкцией в пакете Transact-SQL.When executing the ALTER USER statement with the WITH LOGIN option, it must be the only statement in a Transact-SQL batch.

  • Для выполнения инструкций CREATE/ALTER/DROP пользователю требуется разрешение ALTER ANY USER для базы данных.To CREATE/ALTER/DROP a user requires the ALTER ANY USER permission on the database.

  • Если владелец роли базы данных пытается добавить или удалить другого пользователя базы данных в роль или из роли базы данных, может произойти следующая ошибка: В этой базе данных не существует пользователь или роль «Имя».When the owner of a database role tries to add or remove another database user to or from that database role, the following error may occur: User or role ‘Name’ does not exist in this database. Эта ошибка возникает, поскольку данный пользователь не является видимым для владельца.This error occurs because the user is not visible to the owner. Чтобы устранить эту проблему, предоставьте владельцу роли разрешение VIEW DEFINITION по отношению к данному пользователю.To resolve this issue, grant the role owner the VIEW DEFINITION permission on the user.

Дополнительная информацияNext steps

docs.microsoft.com

Использование PowerShell для администрирования Microsoft SQL Server / Habr

В одном посте невозможно описать все возможности, появившиеся после введения поддержки Window Powershell в Microsoft SQL Server, однако этим постом я постараюсь показать хотя бы часть этих возможностей. В состав SQL Server, начиная с версии SQL Server 2008, входят две оснастки:
  1. Поставщик (Provider) SQL Server, предоставляющий простой механизм навигации – «внутри» SQL Server, можно использовать команды dir, ls, cd, Set-Location, Get-Location и т.д.;
  2. Набор командлетов для указания действий SQL Server (например, выполнение скрипта sqlcmd).

Таким образом, сейчас, вы можете без применения стороннего ПО получать в своих скриптах на PowerShell всю необходимую информацию с SQL Server.
Чем это может быть полезно для администратора?


Итак, если у вас уже установлены клиентские утилиты (SQL Server Management Studio), то в вашей системе уже есть перечисленные выше оснастки и дополнительных действий не требуется. Если нет – вы можете скачать Management Studio бесплатно здесь.
После установки Management Studio и подключения к интересующему вас экземпляру SQL Server, можно запустить утилиту sqlps прямо оттуда:

Если в появившемся окне sqlps набрать команду `dir`, можно увидеть любопытную картину (обратите внимание на объекты в ObjectExplorer в SSMS и результатом команды `dir`):

Вместо использования sqlps, можно просто добавить новые оснастки так:
add-pssnapin SqlServerCmdletSnapin100;
add-pssnapin SqlServerProviderSnapin100;

Убедиться, что они установлены, можно ознакомившись с помощью командлета get-pssnapin –registered.
Итак, после добавления этих оснасток можно посмотреть вывод командлета Get-Psdrive:

Выполнив cd SQLServer:\SQL\ServerName\InstanceName\, мы добьемся того же результата, что и запуская sqlps из SSMS.
Теперь немного о самой большой, «вкусности». Командлеты. Всего нам доступно пять командлетов:
  1. Invoke-Sqlcmd – практически то же самое, что утилита sqlcmd, c помощью этого командлета можно выполнять SQL-запросы на нужном SQLServer.
  2. Invoke-PolicyEvaluation – проверяет соответствует ли целевой набор объектов SQL Server условиям, определенным в схемах управления на основе политик.
  3. Encode-Sqlname – кодировка идентификаторов SQL Server. В SQL Server вы можете присвоить идентификатору в квадратных скобках практически любое значение, что может создать трудности при обращении к нему с помощью PowerShell. Для этого используется командлет Encode-Sqlname, превращающий «My:long_and|complexity|identy» в «My%3Along_and%7Ccomplexity%7Cidenty»
  4. Decode-Sqlname – совершает обратное преобразование
  5. Convert-UrnToPath – преобразует URN-строки, используемые моделью объектов SMO, в «читабельные» пути.

Самым важным, для меня, является командлет Invoke-Sqlcmd позволяющий выполнять произвольный SQL-запрос на сервере.
Представим ситуацию, что вам нужно собрать информацию по используемой памяти на десятке экземпляров, установленных на некотором количестве физических серверов в вашей сети. Чтобы добиться этого, можно использовать сторонние утилиты, позволяющие выполнять запрос на некотором количестве экземпляров, можно использовать ту же sqlcmd, вручную указывая с каких серверов требуется получить данные. С помощью PowerShell эту задачу можно решить проще и элегантнее. Следующий скрипт, например, выведет вам информацию о настройке ‘Max Server Memory (MB)’, на всех экземплярах зарегистрированных на вашем компьютере:

$ServerList = dir -recurse SQLSERVER:\SQLRegistration\'Database Engine Server Group'\ | where {$_.Mode -ne "d"}
foreach ($RegisteredSQLs in $ServerList)
{
$dt = invoke-sqlcmd -ServerInstance $RegisteredSQLs.ServerName -database master -Query "SELECT SERVERPROPERTY('servername'), SERVERPROPERTY ('instancename'), value FROM sys.configurations
WHERE name = 'Max Server Memory (MB)'";
echo $dt >> C:\tmp\memory.txt;
}

Обратите внимание, что в данном случае, для аккаунта под которым запускается этот скрипт должен быть создан login на SQL Server’e и ему должно хватать прав на выполнение запроса к sys.configurations. Если вы используете SQL-логины, нужно указать имя пользователя и пароль в параметрах командлета Invoke-Sqlcmd.

А теперь представьте, что вам надо абсолютно одинаково настроить семь серверов, или добавить на них один и тот же логин, или сделать бэкапы всех баз на сервере… Надеюсь, у меня получилось показать, что использование PowerShell, совместно с SQL Server, позволяет значительно облегчить жизнь администратора баз данных.

Ссылки:

  1. Общие сведения о SQL Server PowerShell, Books Online — msdn.microsoft.com/ru-ru/library/cc281954.aspx
  2. Использование командлета Invoke-Sqlcmd, Books Online — msdn.microsoft.com/ru-ru/library/cc281720.aspx
  3. SQL University — sqlchicken.com/sql-university

habr.com