Язык 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 голоса)
Учетная запись sa является учетной записью системного администратора. В версиях, предшествующих SQL Server 2005, где отсутствовали роли, учетной записи sa были предоставлены все возможные полномочия по задачам системного администрирования. Теперь учетная запись sa включена лишь для обратной совместимости с предыдущими версиями. Эта учетная запись всегда является членом фиксированной серверной роли sysadmin и не может быть удалена из этой роли.
Оценить
(0 голоса)
Для назначения учетной записи фиксированной серверной роли с использованием SQL Server Management Studio разверните сервер, разверните узлы Security и Server Roles. Щелкните правой кнопкой мыши по роли, в которую вы хотите добавить новую учетную запись, а затем выберите пункт Properties. На странице General диалогового окна Server Role Properties (рис. 12.4) щелкните по кнопке Add. Найдите учетную запись, которую вы хотите добавить. Эта учетная запись теперь становится членом выбранной роли и наследует все права, которые были назначены этой роли.  
Оценить
(0 голоса)
Фиксированные роли базы данных определяются на уровне базы данных и поэтому существуют в каждой базе данных, принадлежащей этому серверу. В табл. 12.2 содержится список всех фиксированных ролей базы данных. Члены фиксированной роли базы данных могут выполнять различные действия. Для получения информации о том, какие действия допустимы для каждой фиксированной роли базы данных, см. документацию Books Online.     Помимо фиксированных ролей базы данных, указанных в табл. 12.2, существуют специальные фиксированные роли базы данных, называемые public, которые прямо сейчас и будут рассмотрены.
Оценить
(0 голоса)
Роль public является специальной фиксированной ролью базы данных, которой принадлежит каждый легитимный пользователь базы данных. Она включает в себя все полномочия по умолчанию для пользователей базы данных. Это дает механизм по предоставлению всем пользователям без соответствующих полномочий набор (обычно ограниченных) полномочий. Роль public поддерживает все полномочия по умолчанию для пользователей базы данных и не может быть удалена. Эта роль не может иметь назначенных ей пользователей, групп или ролей, потому что они принадлежат роли по умолчанию. (В примере 12.19 далее В этом разделе показано использование роли public.) По умолчанию роль public дает возможность пользователям выполнять следующее: ♦ просматривать системные таблицы и…
Оценить
(0 голоса)
Для назначения учетной записи пользователя фиксированной роли базы данных с использованием SQL Server Management Studio разверните сервер, разверните узел Databases, разверните нужную базу данных, разверните узлы Security | Roles | Database Roles. Щелкните правой кнопкой мыши по роли, в которую вы хотите добавить нового пользователя, а затем выберите пункт Properties. В диалоговом окне Database Role щелкните по кнопке Add и просмотрите список пользователей, чтобы найти того пользователя, которого вы хотите добавить. Его учетная запись теперь станет членом этой роли и будет наследовать все полномочия, которые были назначены данной роли.
Оценить
(1 голос)
Роли приложений позволяют вам усилить уровень безопасности для конкретного приложения. Другими словами, роли приложений позволяют самому приложению получить доступ к средствам ответственности за аутентификацию пользователей, вместо того, чтобы рассчитывать на средства системы базы данных. Например, если клерки в вашей компании имеют право изменять данные о ваших служащих только при использовании существующего приложения (а не операторами Transact-SQL или любыми другими инструментами), вы можете создать роль приложения для этого конкретного приложения. Роли приложений сильно отличаются от других типов ролей. Во-первых, роли приложений не имеют членов, потому что они используют только приложения, и им не нужно явно предоставлять полномочия пользователям. Во-вторых, вы должны…
Оценить
(0 голоса)
Вы можете создавать, изменять и удалять роли приложений, используя либо язык Transact-SQL, либо системные процедуры. Поскольку все системные Процедуры, связанные с этой темой (sp_addapprole, sp_setapprole   и sp_dropapproie), не рекомендуются к использованию и будут удалены в одной из следующих версий SQL Server, в этом разделе рассматриваются лишь соответствующие операторы Transact-SQL. Оператор create application role создает роль приложения для текущей базы данных. Этот оператор имеет две опции: одна задает пароль, а другая определяет схему по умолчанию, т. е. первую схему, которая будет отыскиваться на сервере при разрешении имен объектов для этой роли. В примере 12.9 добавляется новая роль с именем weekly_report в…
Оценить
(0 голоса)
После того как установлено соединение, вы должны выполнить системную процедуру sp_setapproie для активации полномочий, связанных с ролью приложения. Эта процедура имеет следующий синтаксис:     Здесь role- имя роли приложения, определенной в текущей базе данных; password задает соответствующий пароль; encrypt_styie определяет стиль шифрования, заданный для пароля. Когда вы активируете роль приложения, используя процедуру spsetapprole, вам нужно знать следующее: ♦ после активации роли приложения вы не можете деактивировать ее в текущей базе данных, пока сессия не отсоединится от системы; ♦ роль приложения всегда ограничена базой данных, т. е. ее областью видимости является текущая база данных. Если вы в сессии изменяете текущую…
Оценить
(0 голоса)
Для создания роли приложения с использованием SQL Server Management Studio разверните сервер, разверните папку Databases, а затем разверните вашу базу данных и ее узел Security. Щелкните правой кнопкой мыши по узлу Roles, выберите пункт New, а затем - пункт New Application Role. В диалоговом окне Application Role введите имя новой роли. Дополнительно вы должны ввести пароль и можете ввести схему по умолчанию для новой роли.
Оценить
(12 голоса)
Обычно определенные пользователем роли базы данных применяются, когда группе пользователей базы данных нужно выполнять общий набор действий с базой данных, а подходящей группы Windows не существует. Такие роли создаются (и удаляются) с помощью операторов Transact-SQL или системных процедур. В этом разделе обсуждаются только операторы Transact-SQL, потому что системные процедуры, относящиеся к ролям, определенным пользователем (sp_addrole и spdroprole), не рекомендуются к использованию.
© 2021 serversql.ru. Все права защищены.