Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Принципалы уровня базы данных




Принципалы уровня SQL Server

Принципалы уровня Windows

l Имя входа домена Windows

l Локальное имя входа Windows

l Имя входа SQL Server (login)

l Роль сервера

l Пользователь базы данных (user)

l Роль базы данных

l Роль приложения

Login это принципал, который идентифицируется внутри сервера (объект сервера).

User – это принципал, который идентифицируется внутри БД (объект БД).

Роль в SQL – это поименованный набор разрешений. Различают роли серверные, базы данных и фиксированные. Все роли, кроме public, фиксированные роли - набор разрешений, который нельзя ни убавить, ни прибавить. Можно только назначать логину роль.

Фиксированные серверные роли распространяются на весь сервер. Каждый член фиксированной серверной роли может добавлять другие имена входа к той же роли.

Фиксированные роли базы данных задаются на уровне базы данных и предусмотрены в каждой базе данных. Каждый пользователь (user) базы данных принадлежит к роли базы данных public.

В отличие от серверных ролей, которые могут быть только встроенными, роли баз данных могут быть как встроенными, так и пользовательскими. Встроенные роли баз данных обладают предопределенным набором разрешений, а пользовательские роли можно использовать для группировки пользователей при предоставлении разрешений. Создать пользовательскую роль можно с помощью скрипта или студии: CREATE ROLE DBRole1;

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

Роль public – не фиксированная, т.е. можно добавлять разрешения. Если пользователю не назначена никакая роль, то public обладают все пользователи. При подключении все пользователи приобретают набор разрешений public.

При создании любой базы данных в ней автоматически создаются четыре специальных пользователя (информация 2005 сервера!!!):

l dbo (от database owner) — пользователь-владелец базы данных. Он автоматически создается для того логина, от имени которого была создана эта база данных. Конечно же, как владелец, он получает полные права на свою базу данных.

l При создании база данных включает в себя пользователя guest по умолчанию. Разрешения, предоставленные пользователю guest, наследуются пользователями, которые не имеют четной записи пользователя в базе данных.Пользователя guest нельзя удалить, но его можно отключить, если отменить его разрешение CONNECT.

l INFORMATION_SCHEMA — этому пользователю не может соответствовать ни один логин. Его единственное значение —быть владельцем схемы INFORMATION_SCHEMA, в которой хранятся представления системной информации для базы данных;

l sys — этому специальному пользователю, как и INFORMATION_SCHEMA, не могут соответствовать логины. Он является владельцем схемы SYS, к которой принадлежат системные объекты базы данных.

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

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

l затем пользователь выполняет хранимую процедуру sp_setapprole, чтобы активизировать указанную им роль приложения. При этом в базе данных он получает права этой роли приложения (и теряет свои текущие права);

l после того, как необходимость в правах роли приложения закончилась, пользователь может опять переключиться на свою исходную учетную запись (sp_unsetapprole.)+

Имперсонизация (олицетворение) – свойство программного объекта обладать заданными разрешениями по отношению к другим объектам. Применяется для создания дополнительного уровня безопасности в информационной системе.

 

 

32. Применение XML: правильные и валидные документы XML, конструкции FOR XML AUTO, FOR XML PATH, функция OPENXML, тип XML, применение XQUERY-конструкций, коллекции XML-схем и их применение, типизированые XML-столбцы,

XML: Extensible Markup Language – расширяемый язык разметки.

Правильно построенный документ – соответствует синтаксическим правилам XML.

Валидный документ – соответствует семантическим правилам. Семантические правила описываются с помощью специальных схем.

Для получения таблицы из реляционного вида в формат XML, используют следующие конструкции:

FOR XML AUTO – используется в селект-запросе для получения строк в простейшем xml-формате (атрибутная форма таблицы). Пример:

Имя тега будет совпадать с именем таблицы, а в качестве атрибутов будут имена столбцов:

FOR XML PATH – используется в селект-запросе для получения строк в не атрибутной, теговой форме. Т.е. имена столбцов будут записаны отдельно в каждом теге.

Функция OPENXML позволяет получить доступ к XML-данным так, как если бы это был реляционный набор строк. Чтобы писать запросы в отношении XML-документа с использованием OPENXML, необходимо сначала вызвать хранимую процедуру sp_xml_preparedocument. Таким образом, производится синтаксический анализ XML-документа и возвращается дескриптор для проанализированного документа, готового к использованию. Проанализированный документ является представлением дерева объектной модели документа (DOM) различных узлов в XML-документе. Дескриптор документа передается OPENXML. Затем инструкция OPENXML выдает представление документа в виде набора строк, основываясь на переданных ей аргументах.

Пример: declare @xml varchar(2000)= --наш xml-документ

'<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<X>
<AUDITORIUM>1</AUDITORIUM>
<AUDITORIUM_NAME>1</AUDITORIUM_NAME>
<AUDITORIUM_CAPACITY>1</AUDITORIUM_CAPACITY>
<AUDITORIUM_TYPE>ЛК</AUDITORIUM_TYPE>
</X>
<X>
<AUDITORIUM>9</AUDITORIUM>
<AUDITORIUM_NAME>9</AUDITORIUM_NAME>
<AUDITORIUM_CAPACITY>9</AUDITORIUM_CAPACITY>
<AUDITORIUM_TYPE>ЛК</AUDITORIUM_TYPE>
</X>
</ROOT>',

@hxml int

EXEC sp_xml_preparedocument @hxml output, @xml -- процедура перевода, получаем дескриптор

INSERT INTO AUDITORIUM(AUDITORIUM,AUDITORIUM_NAME,AUDITORIUM_CAPACITY,AUDITORIUM_TYPE)

SELECT * FROM openxml(@hxml, 'ROOT/X',2)—вызов функции с параметрами




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 751; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.