Declare имя_переменной тип_переменной

Имя переменной постоянно начинается с знака «@». Другая часть имени переменной подчиняется стандартным правилам именования в MS SQL Server 2000. Переменные смогут иметь те же самые типы, что и столбцы таблицы (типы рассмотрены в лаб. раб. №2). В одной команде declare возможно заявить пара переменных, отделяя их друг от друга запятыми. К примеру: declare @name varchar(20), @age tinyint.

Для присваивания значений переменным, применяют команды set либо select. Первая команда разрешает присваивать значение лишь одной переменной, вторая – сходу нескольким. К примеру:

  • Set @name = ‘Alex’
  • Set @age = 24
  • Select @name=’Alex’, @age = 24

По окончании символа равенства в операторе присваивания может пребывать как некое атомарное значение, так и вычисляемое выражение. В выражениях возможно использовать имена переменных, имена столбцов таблиц базы данных, константные значения, операторы — арифметические, конкатенации, логические, битовые и сравнения, и функции (как встроенные, так и пользовательские).

К арифметическим операторам относят сложение (+), вычитание (-), умножение (*), деление (/) и нахождение остатка от деления (%). Употребляются для числовых типов.

Оператор конкатенации рекомендован для работы с символьными строчками и разрешает объединять их. Оператор обозначается знаком (+).

Операторы сравнения (,=,!=,= и

Комплект логические операторов, в отличие от всех остальных, имеет кроме стандартных, операторы, не имеющие аналогов в классических языках программирования. Это связано со спецификой обрабатываемой информации. Разглядим логические операторы более детально.

  • NOT, AND и OR – имеют аналоги в языках программирования;
  • BETWEEN – возвращает true в случае если контролируемое значение лежит в указанном промежутке;
  • ALL – сравнивает контролируемое скалярное значение со всеми значениями в комплекте. Возвращает true, в случае если условие выполняется для всех значений в комплекте;
  • ANY – сравнивает контролируемое скалярное значение со всеми значениями в комплекте. Возвращает true, в случае если условие выполняется хотя бы для одного значения в комплекте;
  • IN – подобен ANY, с той отличием, что может употребляться любое выражение в качестве контролируемого значения. Помимо этого, для создания комплекта может употребляться не только запрос либо подзапрос, но и простое перечисление значений;
  • EXISTS – возвращает true, в случае если подзапрос возвращает хотя бы одну строчок;
  • LIKE – употребляется для поиска значений по заданному примеру (был рассмотрен в [7]).

Для вывода информации, применяют команду print либо уже привычную команду select. Отличие в том, что команда print осуществляет несложной вывод, а команда select – вывод в обычный комплект строчков. Синтаксис команд однообразен – по окончании команды перечисляются имена переменных, значения которых необходимо вывести.

Временные таблицы создаются и обрабатываются иным образом. Создание временной таблицы подобно созданию простой таблицы, с той отличием, что имя временной таблицы должно начинаться с знака «#». Временные таблицы сохраняются в служебной базе данных TempDB и машинально уничтожаются при завершении сеанса пользователя, их создавшего (либо командой drop table). Работа с временной таблицей – ввод, редактирование, удаление и вывод данных, происходит подобно работе с простыми пользовательскими таблицами.

Разглядим управляющие конструкции, применяемые в языке T-SQL:

Составной оператор – употребляется в тех случаях, в то время, когда нужно объединить группу операторов T-SQL в единый блок, принимаемый сервером как единое целое. В частности, составной оператор обычно употребляется в цикла и операторов ветвления. Оператор имеет следующий синтаксис:

BEGIN комплект операторов END

Оператор ветвления – употребляется для организации исполнения того либо иного комплекта операторов в зависимости от некоего условия. Оператор имеет следующий синтаксис:

IF логическое_условие

Комплект операторов

ELSE

Другой комплект операторов

Оператор цикла – в языке T-SQL существует лишь одна разновидность циклических операторов – оператор цикла с предусловием. Оператор имеет следующий синтаксис:

WHILE логическое_условие

Комплект операторов

В циклического оператора смогут использоваться операторы breakи continue.Команда break разрешает досрочно выйти из цикла, а команда continue – досрочно начать новый виток цикла. В большинстве случаев, обе команды помещают в некоего оператора ветвления.

Оператор паузы – waitfor, разрешает организовать задержку выполнения сценария. В данного оператора употребляются главные слова delay –для указания отрезка времени либо time –для указания правильного времени. К примеру:

WAITFOR delay ’31:00’ –остановит исполнение сценария на 31 60 секунд

WAITFOR time ’12:00’ –остановит исполнение команд до 12 часов.

Не считая обрисованных команд и операторов, в сценариях возможно применять каждые команды SQL – для, удаления и редактирования объектов базы данных, для выборки, вставки, удаления и изменения данных и т.п.

Вопросы к допуску

1. Что именуется SQL-сценарием?

2. Для решения каких задач используют сценарии?

3. Как сохраняются сценарии в MS SQL Server 2000?

4. Как позвать и запустить на выполнение сценарий в MS SQL Server 2000?

5. Что именуется пакетом? Для чего используют пакеты?

6. Как поделить сценарий на пакеты?

7. Какие конкретно ограничения накладываются на пакеты в MS SQL Server 2000?

8. Какими недочётами владеют сценарии?

Контрольные вопросы

1. Обрисуйте процесс создания сценария в MS SQL Server;

2. Как объявлять и инициализировать переменные в сценариях?

3. Как создавать временные таблицы?

4. Обрисуйте организацию процесса вывода данных из переменных и из временных таблиц;

5. Какие конкретно группы операторов возможно применять в выражениях T-SQL?

6. Обрисуйте операторы логического комплекта операторов T-SQL;

7. Что такое составной оператор? Какие конкретно команды используются для составного оператора?

8. Как организовать процесс ветвления средствами T-SQL?

9. Обрисуйте оператор выбора, применяемый в T-SQL?

10. Как организуют циклический процесс в T-SQL?

11. Какие конкретно команды используют для досрочного завершения цикла? Приведите пример;

12. Посредством какой команды возможно приостановить исполнение сценария?

Лабораторная работа №6:
«Разработка хранимых процедур»

Задание:

  • Создать пара хранимых процедур, применяя Query Analyzer;
  • Показать работу с хранимыми процедурами в Query Analyzer – запуск, передача параметров, просмотр кода.

Теоретический материал:

Хранимые процедуры являются усовершенствованным вариантом sql-сценариев. Сценарии разрешают решать разнообразные задачи, но они владеют рядом следующих недочётов:

  • В сценарии нереально передавать параметры. Значения, которыми инициализируют переменные, применяемые в сценарии возможно поменять, лишь методом редактирования сценария. Возможность передачи параметров имела возможность бы быстро повысить гибкость применения сценариев методом их подстройки под разные задачи;
  • Сценарий есть трактуемым и хранится в отдельном файле. Это понижает его производительность. При создании сценария и первом его запуске сервер машинально формирует оптимальный замысел выполнения сценария. Но, каждые внесенные в сценарий трансформации, отменяют оптимальный замысел его выполнения. Для увеличения производительности значительно эргономичнее было бы хранить сценарий на сервере и динамически изменять замысел его выполнения при внесении трансформаций в него;
  • Хранение сценариев в отдельном файле понижает безопасность базы данных. В MS SQL Server 2000 возможно выдавать права и разрешения лишь на объекты, хранящиеся на сервере. Т.о. сценарием может воспользоваться любой человек. Преступник может поменять сценарий и настроить его на деструктивные действия. Средства безопасности MS SQL Server 2000 в этом случае окажутся неэффективными.

Рассмотренные недочёты очень сильно понижают пользу от применения сценариев и заставляют задуматься об их усовершенствовании. Хранимые процедуры результат усовершенствования sql-сценариев и лишены обрисованных недочётов.

Хранимую процедуру возможно выяснить как именованный sql-сценарий, хранящийся на сервере. В хранимые процедуры возможно передавать параметры, помимо этого, хранимая процедура способна возвращать параметры. Это разрешает разрабатывать эластичные сценарии, складывающиеся из последовательно делаемых хранимых процедур. Средства безопасности MS SQL Server 2000 разрешают выдать пользователю либо приложению право на выполнение хранимой процедуры.

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

В MS SQL Server 2000 хранимые процедуры разделяются на 5 видов:

  • Системные хранимые процедуры – употребляются для помощи функциональности MS SQL Server 2000 и хранящихся на нем баз данных. Разрешают организовать выборку данных из системных таблиц, решать разные задачи администрирования сервера, руководить разными его работами. Существует пара сотен разных системных хранимых процедур. Все они сохраняются в системной базе данных Master и имеют в собственном заглавии префикс sp_;
  • Локальные хранимые процедуры – сохраняются в пользовательской базе данных и употребляются для ответа разных задач в ней. В данной лабораторной работе мы будем создавать как раз эту разновидность хранимых процедур;
  • Временные хранимые процедуры – сохраняются в системной базе данных TempDB и существуют лишь на период сеанса пользователя;
  • Удаленные хранимые процедуры – этот вид хранимых процедур функционирует на удаленной копии MS SQL Server. На данный момент подобные процедуры не рекомендуется применять. Они покинуты только для совместимости с ранними предположениями MS SQL Server.
  • Расширенные хранимые процедуры – по собственной структуре, эта разновидность сильно отличается от всех остальных хранимых процедур. Расширенные хранимые процедуры являются динамически подключаемые библиотеки (dll). Хранимые процедуры этого вида имеют префикс xp_ и предназначены для сотрудничества с разными внешними программами (к примеру для отправки сообщений по email – xp_sendmail). Создавать расширенные хранимые процедуры возможно посредством любого языка программирования, применяя SQL Server Open Data Services API.

В данной лабораторной работе мы будем разглядывать локальные хранимые процедуры. Для таких процедур употребляется команда create proc, имеющая следующий синтаксис:

CREATE PROC имя_процедуры

[список параметров]

[WITH RECOMPILE | ENCRYPTION]

AS

тело процедуры

GO

Разглядим команду более детально. По окончании главных слов create proc нужно указать имя процедуры. Имена процедур подчиняются стандартным правилам именования объектов в MS SQL Server 2000. Потом возможно указать перечень параметров передаваемых в процедуры и возвращаемых процедурой. Параметры перечисляются через запятую и имеют следующий синтаксис:

имя тип [= значение_по_умолчанию] [OUTPUT]

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

Опции with recompile и with encryption являются необязательными и употребляются соответственно, в случае если необходимо запретить кэширование замысла исполнения процедуры (не рекомендуется т.к. это снизит производительность) и в случае если необходимо шифровать код хранимой процедуры.

Тело процедуры является набором команд языка T-SQL. Для завершения команды create proc употребляется оператор go (т.к. данная приказ возможно единственной в пакете).

Разглядим пара примеров:

Create proc building_info

@type varchar (9)

as

select bldg_id, address, status

from builling

where bldg_type = @type

go

В данном примере хранимая процедура принимает параметр @type и выводит все сведения о строениях указанного типа. Для исполнения процедуры возможно выполнить команду:

Exec building_info ‘Магазин’

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

Разглядим еще один пример:

Create proc worker_info

@id char(5) = null output

@name varchar(30) = null output

@skill varchar (10) output

@rate smallmoney output

AS

If @id is not null

Select @name = wrkr_name, @skill = skill_type, @rate = h_rate

From worker

Where wrkr_id = @id

Else

Select @id = wrkr_id, @skill = skill_type, @rate = h_rate

From worker

Where wrkr_name = @name

Go

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

Declare @id char(5), @name varchar(30),

@skill varchar (10), @rate smallmoney

Set @name = ‘Сидоров И.П.’

Exec worker_info @name, @id output, @skill output,

@rate output

Select [Код работника] =@id ,[Специальность]= @skill, [Оплата]= @rate

Результатом исполнения приведенного кода будет вывод сведений о работнике по имени «Сидоров И.П.».

Вопросы к допуску

  1. Что именуют хранимой процедурой?
  2. За счет чего хранимые процедуры имеют громадную производительность, нежели сценарии?
  3. Каким образом обеспечивается безопасность при применении хранимых процедур?
  4. Перечислите виды хранимых процедур, применяемых в MS SQL Server 2000. Дайте им краткую чёрта;
  5. Как (в общем случае) сохраняются процедуры?
  6. Как осуществить вызов хранимой процедуры?

Контрольные вопросы

  1. В какой базе данных сохраняются системные хранимые процедуры? Приведите пример системной хранимой процедуры;
  2. Где сохраняются временные хранимые процедуры? Какой срок судьбы может иметь временная хранимая процедура?
  3. В каком виде сохраняются расширенные хранимые процедуры? Как подключить собственную расширенную процедуры к серверу базы данных? Приведите пример расширенной хранимой процедуры;
  4. Какими методами создаются локальные хранимые процедуры? Где и как они сохраняются?
  5. Обрисуйте синтаксис команды create proc;
  6. Для чего употребляется опция with recompile?
  7. Для чего употребляется опция with encryption?
  8. Как создавать входные и выходные параметры в теле процедуры?
  9. Обрисуйте вызов процедуры с передачей параметров;
  10. Обрисуйте процесс передачи параметров из процедуры;

Лабораторная работа №7:
«Создание триггеров»

Задание:

  • Создать пара триггеров различных типов и связать их с представлениями и таблицами базы данных;
  • Показать выполнение триггеров.

Теоретический материал:

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

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

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

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

В MS SQL Server 2000, триггеры классифицируют по 2-м показателям: по поведению и по типу операции, на которую они реагируют. По поведению различают два вида триггеров – after и instead of.По типу операции триггеры делятся на insert trigger, update trigger и delete trigger

Триггеры типа after выполняются по окончании того, как была выполнена запустившая их операция. Данный вид триггеров есть стандартным триггером для MS SQL Server 2000. Эти триггеры возможно связывать лишь с таблицами базы данных. Возможно назначить пара последовательно делаемых триггеров на одну и ту же команду (insert, update либо delete).

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

Для триггеров в T-SQL используют команду create trigger, которая имеет следующий синтаксис:

CREATE TRIGGER имя_триггера

ON имя_таблицы

тип_триггера запускающая_операция

AS

тело триггера

GO

В команде в обязательном порядке требуется указать имя триггера и, по окончании главного слова on имя таблицы (для instead of триггеров возможно указать имя представления), с которой будет связан триггер. Потом требуется указать тип триггера – after (возможно кроме этого применять главное слово for) либо instead of и операцию, которая запустит триггер. Одинаковый триггер может запускаться различными операциями, в этом случае их перечисляют через запятую.

По окончании главного слова as следуют операторы T-SQL, составляющие тело триггера. Для завершения создания триггера делаем команду go.

В ходе работы может пригодиться поменять триггер. Для этого употребляется команда alter trigger,которая имеет такой же синтаксис, как и команда create trigger. Практически, в T-SQL, изменение триггера эквивалентно написанию его заново.

В случае если появляется необходимость удалить триггер, употребляется команда drop trigger имя_триггера.

Узнаем, как трудится триггер. При вызове триггера, MS SQL Server 2000 формирует две особые таблицы – inserted и deleted. Эти таблицы создаются раздельно для каждого триггера и имеют режим «лишь для чтения».

При вызове операции вставки данных (insert), таблица inserted содержит засунутые пользователем строчка, а таблица deleted безлюдна. При вызове операции удаления (delete) обстановка противоположна – inserted безлюдна, а deleted содержит строки, удаленные пользователем из таблицы. При вызове операции обновления (update) задействуются обе таблицы. В таблице deleted находятся эти, каковые пользователь планирует изменить, а в таблице inserted находятся обновленные эти.

При собственной работе триггер разбирает эти, хранящиеся в таблицах inserted и deleted для принятия ответа о фиксации либо откате транзакции.

Достаточно довольно часто на практике появляются обстановке, в то время, когда нужно узнать, в каком как раз столбце (либо столбцах) были произведены трансформации. Язык T-SQL предоставляет функции update (имя_столбца) и column_updates (маска) для ответа данной задачи.

Первая из этих функций — update (имя_столбца) разрешает в явном виде ввести имя некоего столбца и возвращает true, в случае если в нем были произведены вставка либо обновление данных.

Для исполнения аналогичной проверки для нескольких столбцов, употребляется функция column_updated, принимающая в качестве параметра битовую маску. Для первых 8-ми столбцов маска формируется следующим образом (Таблица1):

Таблица 1

Столбец
Маска

На практике для реализации проверки используют оператор битового and, данной в функции. Разглядим пример:

If (column_updates() 40) = 0

В данном примере число 40 возможно разложить на 32 + 8. Эти маски соответствуют шестому и четвертому столбцам. Так, условный оператор посредством функции column_updates контролирует, были ли внесены изменение и в 4, и 6 столбцы. Если бы потребовалось проверить были ли внесены трансформации в хотя бы в один из этих столбцов, символ равенства заменился бы знаком «больше»:

If (column_updates() 40) 0

Необходимо заметить, что в таблицах довольно часто содержится более восьми столбцов. Появляется вопрос: «Как проверить остальные столбцы?» Дело в том, что битовая маска однообразна для каждой восьмерки столбцов и для всех восьмерок, не считая первой нужно показывать ее порядковый номер. К примеру, для второй восьмерки проверка 10 и 12 столбцов будет выглядеть следующим образом:

If (column_updates()10, 2) 0

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

Вопросы к допуску

1. Что именуется триггером?

2. Для чего применяют триггеры?

3. С какими объектами базы разрешённых можно связать триггеры?

4. В каких случаях направляться использовать ограничения и нет необходимости в применении триггеров?

5. В каких случаях направляться использовать триггеры вместо ограничений?

6. Как осуществляется запуск триггера?

Контрольные вопросы

1. Какие конкретно виды триггеров употребляются в MS SQL Server 2000?

2. Охарактеризуйте after-триггеры;

3. Охарактеризуйте instead of триггеры;

4. Какие конкретно операции способны вызвать запуск триггера?

5. Обрисуйте синтаксис команды, создающей триггер;

6. Как изменять триггер средствами T-SQL?

7. Как удалить триггер средствами T-SQL?

8. Как именно возможно временно отключить триггер, не удаляя его?

9. Для чего употребляется таблица inserted? Какие конкретно эти сохраняются в ней и в то время, когда?

10. Для чего употребляется таблица deleted? Какие конкретно эти сохраняются в ней и в то время, когда?

11. Приведите пример применения функции Update();

12. Как именно строится маска в функции Column_updates()?

13. Как применять функцию column_updates() для проверки трансформаций в столбцах таблицы?

14. Посредством какой функции возможно организовать вывод пользовательских сообщений?

Лабораторная работа №8:
«Создание учетных записей. Управление разрешениями»

Задание:

  • Создать пара учетных записей пользователей. Показать объединение учетных записей в группу;
  • В среде Enterprise Manager показать назначение прав и разрешений пользователям как конкретно, так и включая их в роли;
  • Показать управление разрешениями в среде Query Analyzer на языке T-SQL.

Теоретический материал:

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

Задача управления учетными записями и разграничения доступа, есть одной из множества задач реализации защиты базы данных. Компанией Микрософт предлагается шестиуровневая схема защиты данных:

  1. Физический уровень – на данном уровне рассматриваются способы серверного оборудования и защиты инфраструктуры (к примеру, разрешает не допустить кражу твёрдого диска с тайными данными);
  2. Безопасность сетевого протокола – рассматриваются способы защиты протоколов передачи данных от внедрения злонамеренного кода и перехвата информации. Рекомендуется применять защищенные протоколы, такие как SSL и IPSec;
  3. Доменная безопасность – безопасность на уровне домена NT;
  4. Безопасность локального компьютера – в случае если SQL Server установлен на локальном компьютере, нужно сократить доступ к данному компьютеру;
  5. Безопасность SQL Server – на данном уровне рассматриваются способы защиты в MS SQL Server 2000;
  6. Безопасность приложений – рассматриваются способы защиты прикладных программ, взаимодействующих с БД.

В лабораторной работе мы будем разглядывать пятый уровень защиты. Защита в MS SQL Server 2000 реализуется при помощи аутентификации, авторизации, шифрования и аудита.

Под аутентификацией понимается предоставление доступа к MS SQL Server 2000. В ходе аутентификации нужно узнать личность пользователя (по его учетной записи), желающего получить доступ к серверу и проверить, имеет ли он на это право.

MS SQL Server 2000 предлагает два типа аутентификации:

  • Windows only – аутентификация средствами Windows. Рекомендуется выбрать этот режим. В данном режиме мы используем учетные записи пользователей домена либо коммисии Windows. Так, к серверу имеют доступ лишь уже зарегистрированные в сети пользователи, каковые проходят диагностику подлинности средствами Windows. Выбрав этот режим, нужно указать, каким как раз сети и-пользователям разрешен доступ к SQL Server. Для этого в среде Enterprise Manager переходим на узел Security и делаем команду New Login. Откроется диалоговое окно, в котором возможно или ввести, или выбрать нужную учетную запись.
  • Mixed Mode – смешанный режим. Разрешена аутентификация как средствами Windows, так и средствами MS SQL Server 2000. На данный момент этот режим не рекомендуется применять, в связи с тем, что личные средства проверки контроля учетных записей в MS SQL Server 2000 намного не сильный, чем подобные в Windows.

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

В MS SQL Server 2000 авторизация реализуется при помощи ролей и разрешения. Разрешения разрешают делать определенные действия и делятся на два вида: разрешения на работы с объектами и разрешения на исполнение операторов.

Разрешения на работу с объектами смогут выдаваться для каждого объекта базы данных раздельно. В данную группу входят следующие разрешения:

  • Select – разрешение на выборку и чтение данных;
  • Update – разрешение на трансформацию данных;
  • Delete – разрешение на удаление данных;
  • Insert – разрешение на вставку новых данных;
  • Execute – разрешение на выполнение хранимых процедур

В группу разрешений на работу с операторами входят create и backup, соответственно разрешающие создание новых объектов и резервное копирование базы данных.

Работа с разрешения ми происходит следующим образом. Возможно выдавать, отменять либо запрещать разрешения. В T-SQL для этого употребляются операторы grant, revoke и deny, соответственно. Пребывав в среде Enterprise Manager, возможно трудиться с разрешениями более несложным и наглядным методом. Нужно выбрать необходимый объект и позвать через контекстное меню его свойства. В открывшемся окне выбрать команду permission (разрешения) и посредством мыши очевидно указать какие конкретно разрешения должны быть выданы, какие конкретно сняты и на что налагается запрет.

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

В MS SQL Server 2000 эта задача решается при помощи механизма ролей. Под ролью понимается комплект разрешений, предназначенный для ответа некоей задачи. Так, имея множество пользователей, делающих однообразные действия с БД можно оформить нужные разрешения в виде роли и выдавать разрешения, включая пользователей в эту роль.

MS SQL Server 2000 содержит некое количество предопределенных ролей, и предоставляет возможности для собственных ролей. Предопределенные роли делятся на роли уровня уровня и роли сервера базы данных. Первые из них предназначены для ответа административных задач, касающихся всего сервера в целом. В эту группу входят роли: sysadmin, serveradmin, securityadmin, setupadmin, processadmin, dbcreator, bulkadmin.

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

  • Db_owner – обладатель базы данных. Может делать каждые действия с ней;
  • Db_accessadmin – в праве предоставлять и отменить доступ к базе данных;
  • Db_securityadmin – назначает разрешения, администрирует роли и т.п.;
  • Db_backupoperator – может создавать резервную копию базы данных;
  • Db_ddladmin – может делать каждые операторы подмножества DDL языка SQL;
  • Db_datareader – есть в праве выборки данных из представлений и таблиц;
  • Db_writer – есть в праве вставки, удаления и изменения данных.

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

Вопросы к допуску

  1. Какие конкретно уровни обеспечения безопасности предлагаются компанией Микрософт?
  2. Как обеспечивается безопасность на физическом уровне?
  3. Как обеспечивается безопасность на уровне протокола обмена данными?
  4. Как обеспечивается безопасность на уровне домена windows NT?
  5. Как обеспечивается безопасность на уровне локального компьютера?
  6. Как обеспечивается безопасность на уровне сервера базы данных?

Контрольные вопросы

  1. Как обеспечивается аутентификация в MS SQL Server 2000?
  2. Как создать учетную запись в MS SQL Server 2000?
  3. Какие конкретно средства авторизации употребляются в MS SQL Server 2000?
  4. Какие конкретно разрешения предоставляет MS SQL Server 2000 для организации защиты данных?
  5. Как происходит работа с разрешениями посредством Enterprise Manager?
  6. Какие конкретно операторы T-SQL употребляются для работы с разрешениями?
  7. Что из себя воображают роли в MS SQL Server 2000?
  8. Какие конкретно виды ролей употребляются в MS SQL Server 2000?
  9. Перечислите и коротко обрисуйте роли уровня сервера;
  10. Перечислите и коротко обрисуйте роли уровня базы данных;
  11. Что из себя воображают роли уровня приложения?
  12. Как включить учетную запись пользователя в роль?

Рекомендуемая литература

1. Глушаков С.В., Ломотько Д.В. Базы данных: Учебный курс М., АСТ, 2000.-504 с., илл.

2. К.Дж. Дейт Введение в совокупности баз данных, М: СПб.: «Издательский дом «Вильямс»», 2000. – 848 с.

3. В.Корнеев, А.Гареев, С.Васютин, В.Райх «Базы данных. Интеллектуальная обработка информации» — М.: «Ноллидж», 2000. – 352с.

4. Микрософт Press «реализация и Проектирование баз данных Микрософт SQL Server 2000. Учебный курс MSSE»: Пер. с англ. – М.; Издательско-торговый дом «Русская редакция», 2001. – 704с.;

5. Райордан Р. Базы реляционных баз данных, М.: Русская редакция, 2001-384 с.

6. Хэнсен Г., Хэнсен Д. Базы данных: управление и разработка: Пер. с англ. – М: ЗАО «Издательство ДВУЧЛЕН», 1999. – 704с

7. Воронов А.В. СУБД: методическое пособие по исполнения практических работ, Петропавловск: СКГУ им. М. Козыбаева, 2005, 34с.

Содержание:

Введение————————————————————- 3

Лабораторная работа №1: «Логическое проектирование»——- 4

Лабораторная работа №2: «Физическое проектирование: построение схемы данных» 15

Лабораторная работа №3: «Создание таблиц базы данных в MS SQL Server 2000» 22

Лабораторная работа №4: «Создание представлений в MS SQL Server 2000» 28

Лабораторная работа №5: «Разработка SQL-сценариев»——- 33

Лабораторная работа №6: «Разработка хранимых процедур»- 39

Лабораторная работа №7: «Создание триггеров»————— 45

Лабораторная работа №8: «Создание учетных записей. Управление разрешениями» 50

Рекомендуемая литература—————————————- 55

Типы данных в C++. C++ для начинающих. Урок #4.


Также читать:

Понравилась статья? Поделиться с друзьями: