Уровни привилегий. Привилегии. — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Уровни привилегий. Привилегии.

2020-02-15 431
Уровни привилегий. Привилегии. 0.00 из 5.00 0 оценок
Заказать работу

 

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

То, что пользователь может подключиться к БД, совсем не означает того, что он может получить из нее какие-либо данные. Доступ к данным в рамках сеанса подключения пользователя разрешается путем установки привилегий.

Существуют два уровня привилегий:

Привилегии доступа к системе;

Привилегии доступа к объектам.

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

Несмотря на серьезные различия реализаций SQL список основных привилегий остается неизменным:

CREATE DATABASE/TABLE/USER, ALTER DATABASE/TABLE/USER, DROP TABLE/USER, SELECT, BACKUP.

Привилегии доступа к объектам - это уровни полномочий пользователей по отношению к объектам БД. Стандарт SQL определяет следующий ряд привилегий:

SELECT, INSERT, UPDATE

 

Резервирование БД. Восстановление БД.

 

Резервное копирование (англ. backup copy) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном или новом месте их расположения в случае их повреждения или разрушения.

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

 

Виды резервного копирования:

  • Полное резервное копирование (Full backup)

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

  • Дифференциальное резервное копирование (Differential backup)

При дифференциальном («разностном») резервном копировании каждый файл, который был изменён с момента последнего полного резервного копирования, копируется каждый раз заново

  • Инкрементное резервное копирование (Incremental backup)

При добавочном («инкрементном») резервном копировании происходит копирование только тех файлов, которые были изменены с тех пор, как в последний раз выполнялось полное или добавочное резервное копирование.

 

Типы операторов.

 

  • Операторы описания данных.
    • CREATE
    • DROP
  • Операторы задания прав доступа в базе данных
    • GRANT
    • REVOKE
  • Операторы транзакций и восстановления данных.
    • BEGIN
  • Операторы манипуляции данными
    • CREATE
    • DELETE
    • INSERT
    • UPDATE

 

Фильтрация данных.

 

Зачастую необходимо извлекать не все данные из БД, а только те, которые соответствуют определенному условию. Для фильтрации данных в команде SELECT применяется оператор WHERE, после которого указывается условие:

 

WHERE условие

Если условие истинно, то строка попадает в результирующую выборку. В качестве можно использовать операции сравнения, которые сравнивают два выражения:

 

=: сравнение на равенство;!=: сравнение на равенство; <>: сравнение на неравенство; <: меньше чем; >: больше чем; <=: меньше чем или равно; >=: больше чем или равно

 

К примеру, выберем всех товары, производителем которых является компания Samsung:

 

SELECT * FROM Products

WHERE Manufacturer = 'Samsung';

 

Критерий фильтрации может представлять и более сложное составное выражение. Например, найдем все товары, у которых совокупная стоимость больше 100 000:

 

SELECT * FROM Products

WHERE Price * ProductCount > 100000;

 

23.     Суммирование и фильтрация данных.


см оператор SUM и пункт 22

 

Связанные подзапросы.

 

Когда Вы используете подзапросы, Вы можете обратиться во вложенном подзапросе к таблицам из внешнего подзапроса. Например, как найти всех заказчиков на 3 октября:

 

SELECT * FROM Customers C

WHERE '1999-10-03' IN (

SELECT odate

FROM Orders O

WHERE O.cnum = C.cnum

)

 

Как это все работает?

В приведенном выше запросе C и O это псевдонимы таблиц. Так как значение в поле cnum внешнего запроса меняется, то внутренний запрос должен выполняться отдельно для каждой строки внешнего запроса. Строка внешнего запроса, для которой будет выполняться внутренний запрос, называется строкой-кандидатом.

 

Процедура оценки, выполняемая связанным запросом:

  1. Выбрать строку из таблицы, указанной во внешнем запросе. Это будет текущая строка-кандидат.
  2. Сохранить значения из этой строки-кандидата во временном буфере
  3. Выполнить подзапрос. Для отбора записей использовать строку-кандидат.
  4. Вычислить условие во внешнем запросе, на основе результатов внутреннего подзапроса, выполняемого в п.3. Определяется - отбирается ли строка-кандидат для вывода.
  5. Повторить процедуру для всех строк.

 

25.     Временные таблицы.

 таблицы могут быть крайне полезными, когда нам необходимо хранить различные временные данные (например, список товаров в чеке, до момента осуществления оплаты). Главное преимущество таких таблиц заключается в том, что они будет удалены сразу же после завершения клиентской сессии.

Пример:

Ниже приведён пример использования временной таблицы:

 

mysql> CREATE TEMPORARY TABLE SALES_TICKET_SUMMARY (

PRODUCT_NAME VARCHAR (100) NOT NULL,

PRODUCT_PRICE INT NOT NULL,

PRODUCT_AMOUNT INT NOT NULL DEFAULT 1

);

 

Теперь добавим данные в нашу таблицу, используя следующий запрос:

 

mysql> INSERT INTO SALES_TICKET_SUMMARY VALUES ('Milk', 10, 2);

 

На данный момент, наша таблица SALES_TICKET_SUMMARY содержит следующие записи:

 

+--------------+---------------+----------------+

| PRODUCT_NAME | PRODUCT_PRICE | PRODUCT_AMOUNT |

+--------------+---------------+----------------+

| Milk | 10 | 2 |

+--------------+---------------+----------------+

 

По умолчанию, после того как наша сессия будет закончена, данная таблица будет удалена.

Но, если мы хотим удалить временную таблицу до этого момента, то нам необходимо использовать команду DROP TABLE:

 

mysql> DROP TABLE SALES_TICKET_SUMMARY;

 

Попытка обратиться к данной таблице после этого приведёт к ошибке 1146:

 

mysql> SELECT * FROM SALES_TICKET_SUMMARY;

ERROR 1146 (42S02): Table 'sql_tutorial.SALES_TICKET_SUMMARY' does

 

26.     Модификация данных в таблицах.


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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.024 с.