Язык Transact-SQL

Подкатегории

Хранимые процедуры и функции, определенные пользователем

В этом разделе вводятся описания пакетов и подпрограмм. Пакеты являются последовательностью операторов Transact-SQL и процедурных расширений. Подпрограммы могут быть либо хранимыми процедурами, либо функциями, определенными пользователем (User Defined Function, UDF). В начале главы вводятся все процедурные расширения, поддерживаемые Database Engine. После этого процедурные расширения используются вместе с операторами Transact-SQL, чтобы продемонстрировать, как могут быть реализованы пакеты. Пакет может быть сохранен как объект базы данных в виде хранимой процедуры или UDF. Одни процедуры написаны пользователями, другие предоставляются корпорацией Microsoft, они называются системными хранимыми процедурами. В отличие от пользовательских хранимых процедур функции, написанные пользователем, возвращают вызвавшей программе некоторое значение. Все подпрограммы могут быть написаны либо на Transact-SQL, либо на любом языке программирования, таком как С# или Visual Basic.

Просмотреть материалы...

Система безопасности Database Engine

Этот раздел начинается с краткого обзора наиболее важных концепций безопасности базы данных. Затем обсуждаются специфические особенности системы безопасности Database Engine. Аутентификация требует ответа на следующий вопрос: «Имеет ли этот пользователь легитимные права на доступ в систему?» Следовательно, эта концепция безопасности задает процесс проверки полномочий для предотвращения использования системы неавторизованными пользователями.

Просмотреть материалы...

Управление параллельной работой

Как вы уже знаете, данные в базе данных обычно используются многими программами пользовательских приложений. Ситуация, при которой несколько программ пользовательских приложений читают и пишут одни и те же данные в одно и то же время, называется конкурентным доступом. Следовательно, каждая СУБД должна иметь некоторый механизм управления для разрешения проблем конкурентного доступа. Высокий уровень конкурентного доступа возможен в системе базы данных, которая может управлять многими активными пользовательскими приложениями без их влияния друг на друга. И наоборот, система базы данных, где различные активные приложения влияют друг на друга, поддерживает низкий уровень конкурентного доступа. Этот раздел начинается с описания двух моделей управления конкурентным доступом, которые поддерживает Database Engine. В следующем разделе объясняется, как проблемы конкурентного доступа могут быть решены с использованием транзакций. Это обсуждение включает вводные сведения в четыре свойства транзакций, известные как свойства ACID (Atomicity, Consistency, Isolation, Durability- атомарность, согласованность, изолированность, устойчивость), обсуждаются связанные с транзакциями операторы Transact-SQL, вводится понятие протокола транзакции. Затем рассматривается блокировка и три основных свойства блокировки: модели блокировки, ресурсы блокировки, длительность блокировки. Также вводится важное понятие взаимной блокировки, которая может возникать как результат обычной блокировки.

Просмотреть материалы...

Системный каталог

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

Просмотреть материалы...

Индексы

В этом разделе описываются индексы и их роль в оптимизации времени отклика запросов. В первой части главы рассматриваются вопросы хранения индексов и существующие для этого формы. В основном глава содержит описание трех операторов Transact-SQL, имеющих отношение к индексам: create index, alter index и drop index. После этого рассматривается фрагментация индексов и ее влияние на производительность системы. Затем приводятся некоторые общие рекомендации по созданию индексов.

Просмотреть материалы...

Представления – View

Этот раздел посвящена исключительно объектам базы данных, называемым представлениями (view). Структура этой главы соответствует структуре, в которых были описаны операторы DDL и DML для базовых таблиц. В первом разделе этой главы рассматриваются операторы DDL, связанные с представлениями: create view, alter view и drop view. Затем описываются операторы DDL для представлений: select, insert, update и delete. Оператор select будет рассмотрен отдельно от других трех операторов. В отличие от базовых таблиц представления не могут быть использованы для операций модификации без некоторых ограничений.

Просмотреть материалы...

Триггеры

Этот раздел посвящен механизму, называемому триггерами. В начале главы описываются операторы Transact-SQL для создания, удаления и изменения триггеров. После этого даются примеры из различных областей приложений для этого объекта базы данных. Каждый пример создается с использованием одного из операторов insert, update или delete. Во второй части этой главы рассматриваются триггеры DDL, которые базируются на таких операторах, как create table. Опять же, даются примеры из различных областей приложений, связанных с триггерами DDL.

Просмотреть материалы...

Основные элементы SQL

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

Просмотреть материалы...

Язык описания данных

Этот раздел описывает все операторы Transact-SQL, связанные с языком определения данных DDL (Data Definition Language). Операторы DDL разделены на три группы, которые рассматриваются по порядку. Первая группа включает операторы, которые создают объекты, вторая группа включает операторы, которые изменяют структуру объектов, а третья группа включает операторы, которые удаляют объекты базы данных.

Просмотреть материалы...

Запросы к базе данных

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

Просмотреть материалы...

Изменение содержимого таблиц

В дополнение к оператору select, который был описан, существуют три других оператора DML: insert, update и delete. Как и оператор select, эти три оператора модификации оперируют либо таблицами, либо представлениями. В данной главе обсуждаются эти операторы в работе с таблицами и даются примеры их использования. Дополнительно рассматриваются два других оператора: truncate table и merge. В то время как оператор truncate table является расширением в языке Transact-SQL стандарта SQL, оператор merge - новая и стандартизованная возможность в SQL Server 2008.

Просмотреть материалы...
Оценить
(0 голоса)
Оператор create role создает новую определенную пользователем роль базы данных в текущей базе данных. Синтаксис этого оператора: create role role_name [authorization owner_name] Здесь role_name- имя создаваемой роли, определенной пользователем; owner_name задает пользователя или роль базы данных. Если никакой пользователь не задан, ролью будет владеть тот пользователь, который выполняет оператор create role. Оператор alter role изменяет имя определенной пользователем роли базы данных. Аналогично, оператор drop role удаляет роль из базы данных. Роли, которые владеют объектами базы данных, не могут быть удалены из базы данных. Для удаления такой роли вы должны вначале изменить владельца этих объектов.
Оценить
(0 голоса)
Все еще существует несколько системных процедур, которые вы должны использовать, если вам нужно добавлять или удалять членов определенных пользователем ролей: ♦ sp_addroleitiember; ♦ sp_droprolemember; ♦ sp_helprole. После того как вы добавили роль в текущую базу данных, вы можете использовать системную процедуру sp_addrolemember для добавления членов в эту роль. Членом роли может быть любой правильный логин, учетная запись пользователя или группа Windows либо другая роль. Только члены базы данных ролей db_owner могут выполнять эту системную процедуру. Владельцы роли могут также выполнять процедуру sp_addrolemember для добавления членов в любую роль, которой они владеют. Системная процедура sp_droproiemember удаляет существующего члена из роли. Эту…
Оценить
(0 голоса)
Только авторизованные пользователи имеют возможность выполнять операторы и осуществлять операции над сущностями. Если неавторизованный пользователь попытается выполнить оператор Transact-SQL или операцию с объектом базы данных, такое действие будет отменено системой. Существуют три оператора Transact-SQL, связанные с авторизацией: ♦ grant; ♦ deny; ♦ revoke. Прежде чем вы приступите к чтению об этих трех операторах, вы должны знать об одном из наиболее важных свойств безопасности Database Engine: он поддерживает множество областей и полномочий, чтобы помочь системному     администратору обрабатывать полномочия. Модель авторизации разделяет мир на принципалов и объекты безопасности. Каждый объект безопасности имеет связанные с ним полномочия, которые могут быть предоставлены…
Оценить
(0 голоса)
Оператор grant предоставляет полномочия к объектам безопасности. Синтаксис оператора grant: grant {all [privileges]} I permission_list [on [class::]  securable] to principal_list [with grant option] [as principal] Предложение all указывает, что все полномочия, применимые к данному объекту безопасности, будут назначены указанному принципалу. (Список объектов безопасности см. в документации Books Online.) Параметр permission_list задает операторы или объекты (разделенные запятыми), которым предоставляются полномочия; class задает или класс безопасности, или имя объекта безопасности, которому предоставляются полномочия, on securabie задает объект безопасности, которому предоставляются полномочия (см. пример 12.15). principai_iist задает список всех учетных записей (разделенных запятыми), которым предоставляются полномочия, principal и компоненты principai_iist могут быть учетными…
Оценить
(1 голос)
Оператор deny не дает пользователям возможности выполнять действия. Это означает, что такой оператор удаляет существующие полномочия у учетных записей пользователей или не разрешает пользователям применять полномочия от их участия в группах/ролях, которые могут быть получены в будущем. Этот оператор имеет следующий синтаксис: deny {all  [privileges]} I permission_list [on  [class::]  securable] to principal_list [cascade]   [ as principal ] Все опции оператора deny имеют то же логическое значение, что и опции с теми же самыми именами в операторе grant, deny имеет дополнительную опцию cascade, которая указывает, что полномочия не будут применяться для пользователя А и для любого пользователя, которому пользователь А передаст…
Оценить
(1 голос)
Оператор revoke удаляет одно или более из ранее предоставленных или отмененных полномочий. Этот оператор имеет следующий синтаксис: revoke  [grant option for] {[all  [privileges]] I permission_list ]} [on [class::  ] securable ] from principal_list  [cascade]   [ as principal ] В операторе revoke есть только одна новая опция - grant option for. (Все другие опции имеют то же самое логическое значение, что и опции с теми же именами в операторах grant или deny.) grant option for используется для удаления эффекта with grant option в соответствующем операторе grant. Это означает, что пользователь продолжает иметь ранее полученные полномочия, но больше не может предоставлять указанное…
Оценить
(0 голоса)
Пользователи базы данных могут выполнять предоставленные им действия. В этом случае существует соответствующая запись в представлении просмотра каталога sys.database_permissions (т. е. значение столбца state установлено в g). Негативная запись в таблице не дает возможности пользователям осуществлять деятельность. Значение d (deny, отменить) в столбце state перекрывает полномочие, которое было предоставлено пользователю явно или неявно с помощью роли, которой принадлежит пользователь. Поэтому в любом случае пользователь не может выполнять такую деятельность. И в последнем случае (значение к) пользователь не имеет явно установленных привилегий, но может осуществлять некую деятельность, если роль, которой принадлежит этот пользователь, имеет соответствующие полномочия. Для управления полномочиями пользователя или…
Оценить
(0 голоса)
Отслеживание изменений означает документирование всех действий по добавлению, изменению и удалению данных применительно к таблицам базы данных. За документированные изменения затем могут быть просмотрены для выяснения того, кто обращался к данным и когда были выполнены эти обращения. Существуют два способа, при помощи которых вы можете выполнять отслеживание изменений: ♦ использование триггеров; ♦ применение   средств   перехвата,   отслеживающих   изменения   данных (change data capture, CDC). Вы можете использовать триггеры для создания контрольного журнала, содержащего сведения о действиях с одной или более таблицами базы данных. В разд. «Триггеры AFTER» в примере 14.1 показано, как могут быть использованы триггеры для отслеживания подобных изменений. По этой…
Оценить
(0 голоса)
Как было сказано, представления могут быть использованы: ♦ для ограничения использования отдельных столбцов и/или строк таблицы: ♦ для сокрытия деталей сложных, запутанных запросов; ♦ для ограничения значений добавляемых или изменяемых значений заданным диапазоном. Ограничение использования отдельных столбцов и/или строк означает, что механизм представлений обеспечивает управление доступом к данным. Например, если таблица employee также содержит заработные платы каждого сотрудника, то доступ к этим зарплатам может быть ограничен при использовании представления, которое предоставляет доступ ко всем столбцам этой таблицы за исключением столбца salary. В итоге, выборка данных из этой таблицы может быть предоставлена всем пользователям базы данных, использующим это представление, тогда как…
Оценить
(0 голоса)
Существуют следующие наиболее важные концепции системы безопасности баз данных: ♦ аутентификация; ♦ шифрование; ♦ авторизация; ♦ отслеживание изменений. Аутентификация является процессом проверки полномочий пользователей для предотвращения неавторизованного доступа пользователей к использованию системы. Наиболее общим способом выполнения этого является требование предоставления имени пользователя и его пароля. Шифрованием данных является процесс кодирования информации так, чтобы она не была понятной, пока ее не дешифрует соответствующий получатель. Для шифрования данных могут быть использованы различные методы. В процессе выполнения авторизации система определяет, какие ресурсы может использовать конкретный пользователь. Database Engine поддерживает авторизацию при помощи следующих операторов Transact-SQL: grant, deny и revoke. Отслеживание изменений означает, что…
© 2018 www.serversql.ru. Все права защищены.