Роли базы данных и приложений. Предоставление прав на объекты в базе данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Роли базы данных и приложений. Предоставление прав на объекты в базе данных



 

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

 

 

Фиксированная роль базы данных public

Кроме перечисленных в таблице фиксированных ролей базы данных, существует специальная фиксированная роль базы данных public. Фиксированная роль базы данных public является специальной ролью, членом которой являются все законные пользователи базы данных. Она охватывает все разрешения по умолчанию для пользователей базы данных. Это позволяет предоставить всем пользователям, которые не имеют должных разрешений, набор разрешений (обычно ограниченный). Роль public предоставляет все разрешения по умолчанию для пользователей базы данных и не может быть удалена. Пользователям, группам или ролям нельзя присвоить членство в этой роли, поскольку они имеют его по умолчанию.

 

По умолчанию роль public разрешает пользователям выполнять следующие действия:

 

-просматривать системные таблицы и отображать информацию из системной базы данных master, используя определенные системные процедуры;

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

 

 


Процедурное расширение языка SQL: Transact-SQL.

 

Создание и использование хранимых процедур. Пример.

 

Хранимая процедура – объект БД, хранящийся на сервере. Может возвращать одно значение и набор значений, а также не возвращать значения вовсе. Процедуры выполняются отдельно, их нельзя вызвать в запросах и других изображениях.

Процедуры нужны для инкапсуляции повторяющихся действий, разделения бизнес-логики с клиентскими приложениями (часть логики реализована на стороне БД, часть – реализовывается в приложениях), для повышения безопасности БД, для сокращения сетевого трафика в вопросе обмена данными между клиентскими приложениями и СУБД.

В хранимые процедуры можно помещать часто используемые запросы.

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

 

Пример:

 

CREATE PROCEDURE components

AS

SELECT * FROM component;

EXECUTE components;

--///Процедура для вывода всех используемых компонентов для ремонта устройств

go

CREATE PROCEDURE componentspara @name char(40)

AS

SELECT * FROM component where name_component= @name;

EXECUTE componentspara "Дисплей";

--///Процедура для вывода компонентов c именем "Дисплей"

 

 

Пользовательские функции.

Создание и использование скалярных функций. Пример.

 

Скалярные пользовательские функции возвращают скалярный (однозначный) результат, такой как строка или число.

Запрещается использовать нескалярные типы, такие как курсоры и таблицы. Кроме того, скалярные функции не могут возвращать значения с типом timestamp, text, ntext или image, а также значения, имеющие тип данных, определенный пользователем, даже если базовый тип при этом является скаляром.

 

 

CREATE FUNCTION providerdata (@provider varchar(150))

RETURNS varchar(150)

AS

BEGIN

      declare @fulldata varchar(150)

      select @fulldata = city + '-' + street_home + '-' +telefone from provider where vendor = @provider;

      RETURN (@fulldata)

end

go

select dbo.providerdata ('ООО МобКомплект');

--///Функция получения и вывода данных поставщика по его названию

 

 

Создание и использование табличных функций. Пример.

 

Табличные пользовательские функции возвращают таблицу.

Оператор CREATE FUNCTION поддерживает создание двух различных типов табличных функций: подставляемых и многооператорных.

Тело подставляемой табличной функции состоит из единственного оператора SELECT, в то время как многооператорная табличная функция может состоять из любого числа операторов Transact-SQL.

Синтаксис для подставляемой табличной функции является усеченной разновидностью оператора CREATE FUNCTION.

Блок BEGIN...END отсутствует, и нет никаких других операторов, кроме RETURN.

Синтаксис оператора CREATE FUNCTION для многооператорной табличной функции сочетает элементы синтаксиса для скалярной и для подставляемой функций:

 

CREATE FUNCTION имя_функции (список_параметров)

RETURNS @локальная_табличная_переменная TABLE

(определение_таблицы)

AS

BEGIN

операторы_tsql

RETURN

END

Подобно скалярным функциям, в многооператорной табличной функции команды Transact-SQL располагаются внутри блока BEGIN...END. Поскольку блок может содержать несколько операторов SELECT, в фразе RETURNS вы должны явно определить таблицу, которая будет возвращаться.

Поскольку оператор RETURN в многооператорной табличной функции всегда возвращает таблицу, заданную во фразе RETURNS, он должен выполняться без аргументов, – например, RETURN, а не RETURN @myTable.

 

 

CREATE FUNCTION orderclientdata (@surname varchar(50))

RETURNS table

AS

RETURN (select * from client where surname = @surname)

go

select * from orderclientdata ('Сорин');

--///Табличная функция для получения и вывода данных клиента по его фамилии

 



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 97; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.0.192 (0.007 с.)