Categorías: Todo - база - доступ - роли - управление

por Дарья Хомякова hace 6 años

550

SQL

В системах управления базами данных SQL важной составляющей является система безопасности, которая включает в себя различные роли и разрешения для пользователей. Основные роли БД, такие как db_

SQL

SQL

Транзакции

XML

FOR XML
Получение результатов SQL-запроса в формате XML
OPENXML
-разбор документа во внутреннее DOM представление при помощи процедуры sp_xml_preparedocument -выборка и формирование реляционного набора строк на основе XML-документа
Методы типа данных XML
Метод modify()

Изменяет содержимое XML-документа используя XML DML

Метод nodes()

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

Метод exist()

Возвращает значение типа bit, показывающее существует ли указанный элемент xml

Метод value()

Выполняет запрос XQuery к структуре XML и возвращает скалярное значение

Метод query()

Определяет запрос XQuery для экземпляра типа данных xml. Метод возвращает экземпляр нетипизированного xml

Позволяет создавать - столбцы таблиц: CREATE TABLE T (Col1 int primary key, Col2 xml) переменные типа xml: DECLARE @x xml
это встроенный в SQL Server тип данных

Триггеры

Программирование
При выполнении команд добавления, изменения и удаления записей сервер создает две специальные таблицы: -inserted содержит добавленные строки или новые значения строк после выполнения UPDATE -deleted содержит удаленные строки или старые значения строк после выполнения UPDATE
Типы:
Триггеры INSTEAD OF – выполняются вместо выполнения команд
Триггеры AFTER выполняются после успешного выполнения вызвавших его команд
События:
Цели:

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

-Каждый триггер привязывается к конкретной таблице -Все производимые модификации данных рассматриваются как одна транзакция -Создает триггер только владелец базы данных
INSERT UPDATE DELETE
вид хранимой процедуры, выполняемый автоматически при возникновении событий языка обработки данных (DML) в базе данных.

Курсоры

Команды:
• DECLARE – создание или объявление курсора ; • OPEN – открытие курсора, т.е. наполнение его данными; • FETCH – выборка из курсора и изменение строк данных с помощью курсора; • CLOSE – закрытие курсора ; • DEALLOCATE – освобождение курсора, т.е. удаление курсора как объекта
Категории:
прокручиваемые
последовательные
SQL Server поддерживает три вида курсоров:
• курсоры SQL применяются в основном внутри триггеров, хранимых процедур и сценариев; • курсоры сервера действуют на сервере и реализуют программный интерфейс приложений для ODBC, OLE DB, DB_Library; • курсоры клиента реализуются на самом клиенте. Они выбирают весь результирующий набор строк из сервера и сохраняют его локально, что позволяет ускорить операции обработки данных за счет снижения потерь времени на выполнение сетевых операций
В соответствии со стандартом SQL при работе с курсорами можно выделить следующие основные действия:
• создание или объявление курсора ; • открытие курсора, т.е. наполнение его данными, которые сохраняются в многоуровневой памяти ; • выборка из курсора и изменение с его помощью строк данных; • закрытие курсора, после чего он становится недоступным для пользовательских программ; • освобождение курсора, т.е. удаление курсора как объекта, поскольку его закрытие необязательно освобождает ассоциированную с ним память
это область в памяти базы данных, которая предназначена для хранения последнего оператора SQL.

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

Разрешения:
Неявное отклонение доступа

REVOKE [GRANT OPTION FOR] { разрешение [,...n] }{ ON таблица | представление [(поле[,...n])] | ON [хранимая процедура[,...n] } TO учетная запись [,...n][CASCADE]

Запрещение доступа

DENY { разрешение [,...n] }{ ON таблица | представление [(поле[,...n])] | ON [хранимая процедура[,...n] } TO учетная запись [,...n][CASCADE]

Предоставление доступа

GRANT { разрешение [,...n] }{ ON таблица | представление [(поле[,...n])] | ON [хранимая процедура[,...n] } TO учетная запись [,...n][WITH GRANT OPTION]

Роли БД:
• db_owner – включает в себя права все других ролей базы данных. Пользователь получает права владельца базы. • db_accessadmin – похожа на серверную роль securityadmin, за исключением того, что ограничена одной базой данных. Она не позволяет создавать новые логины MS SQL Server, но разрешает добавлять новых пользователей в базу данных. • db_datareader – разрешает выполнение оператора SELECT для всех таблиц базы данных. • db_datawriter – разрешает выполнять INSERT, UPDATE и DELETE для всех таблиц базы данных. • db_ddladmin – позволяет добавлять, удалять и изменять объекты в базе данных. • db_securityadmin – еще одна роль похожая на серверную роль securityadmin. В отличие от db_accessadmin, она не разрешает создавать новых пользователей в базе, но позволяет управлять ролями и членством в ролях, а также правами на доступ к объектам базы данных. • db_backupoperator – позволяет создавать резервные копии базы данных. • db_denydatareader – запрещает выполнение SELECT для всех таблиц базы данных. • db_denydatawriter – запрещает выполнение INSERT, UPDATE и DELETE для всех таблиц базы данных
Роли сервера:
Хранимые процедуры:

• sp_helpsrvrole – возвращает список ролей сервера и описание каждой роли; • sp_helpsrvrolemember [‘имя роли’] – возвращает список ролей и учетных записей, которым присвоены эти роли; • sp_srvrolepermission [‘имя роли’] – возвращает список разрешений, присвоенных этим ролям.

• sysadmin – может выполнять любые действия на MS SQL Server. По умолчанию сюда входит учетная запись sa и все члены группы администраторов Windows; • setupadmin – управляет связанными серверами (linked servers) и процедурами, которые выполняются вместе с запуском сервера; • securityadmin – может создавать и управлять логинами, читать журнал ошибок и создавать БД; • processadmin – обладает правами управления процессами внутри MS SQL Server, например, член этой роли может завершать задачи, которые выполняются слишком долго; • dbcreator – разрешено создание и изменение баз данных; • diskadmin – управляет файлами баз данных: назначает файлы в группы, присоединяет/отсоединяет базы данных и т.д.; • bulkadmin – позволяет выполнять команду BULK INSERT для вставки сразу большого количества записей в таблицу;
определенные права на выполнение операторов и работу с объектами базы данных. Роли объединяют нескольких пользователей в группу, наделенную определенными правами, причем одному пользователю может быть назначено несколько ролей.
Аутентификация пользователя
процесс, при котором пользователь в зависимости от указанного имени пользователя и пароля допускается или нет к установлению соединения с MS SQL Server.

Хранимые процедуры

Вызов
EXEC procedure_name value1, value2 ... EXEC procedure_name @arg1=value1, @arg2= value2 ...
Создание
CREATE { PROC | PROCEDURE } procedure_name [ { @parameter data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY] ] [ ,...n ] [ WITH [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE AS ]] AS [ BEGIN ] [ END ]
-Делают возможным модульное программирование. Можно, однажды создав хранимую процедуру, сохранить ее в базе данных, а затем любое число раз вызывать из своей программы.   -Позволяют ускорить выполнение. Хранимые процедуры снижают стоимость компиляции кода Transact-SQL, кэшируя и повторно используя планы выполнения. Это означает, что для хранимых процедур нет необходимости выполнять повторный синтаксический анализ и оптимизацию при каждом вызове, что значительно ускоряет их выполнение.   -Позволяют уменьшить сетевой трафик. Вместо передачи на сервер тестов больших запросов Transact-SQL, запросы можно оформить в виде хранимых процедур. При этом для их выполнения будут передаваться только имена процедур и значения параметров.
это сохраненная коллекция инструкций языка Transact-SQL, которая может принимать и возвращать предоставленные пользователем параметры.