Работа с базами данных требует от разработчика и системного администратора определенных знаний. Особенно это касается реляционных БД. Такие базы управляются при помощи специальных команд – запросов, написанных на SQL.
Далее предстоит поближе познакомиться с основными понятиями БД, а также с СУБД и SQL. Рассмотрим основные запросы для оперирования базами данных, поближе познакомимся с привилегиями. Особое внимание будет уделено операции the grant on. Представленная далее информация предназначается не только для опытных специалистов, но и для новичков, которые только начинают разбираться в основах работы БД.
База данных – что это
Перед полноценным погружением в основы выполнения операций в базах данных необходимо изучить несколько ключевых понятий. Они помогут быстрее вникнуть в суть поставленных перед разработчиком задач.
Первое, на что необходимо обратить внимание – базы данных (the databases). Так называют некоторый набор информации, который структурирован определенным образом. Это данные, представленные в упорядоченной форме. Чаще всего предстают перед администраторами и разработчиками в виде электронных таблиц и связями между ними.
Разновидности
The databases могут быть разными. В зависимости от типа БД будет меняться процесс оперирования информацией. Существует следующая классификация:
- Иерархические. Наиболее простой вариант. В такой структуре записи будут отходить от «родителя» как ветви. Здесь применяется тот же принцип, что и в случае с папками на компьютере. Каждая запись имеет физическую связь только с одной предыдущей. В иерархических DB не поддерживается отношение «многие ко многим».
- Сетевые. Образовывают общий граф. Каждая запись может иметь более одного «родителя».
- Объектно-ориентированные. В них представляется the information о реальных вещах в виде объектов с уникальными идентификаторами (они называются индексами). Состояние элемента удается описывать посредством атрибутов, его поведение – через так называемые методы. Допускается сбор компонентов с одинаковыми атрибутами и свойствами в единые классы.
- Реляционные. Это – наиболее распространенный вариант, с которым работают как новички, так и уже опытные разработчики/системные администраторы. Реляционные БД – это хранилища информации, реализованные в виде таблиц. Через них устанавливаются связи между компонентами. Таблицы обладают полем для внешнего ключа со ссылками на другие таблицы. Реляционные БД гибкие и хорошо организованные, благодаря чему они пользуются спросом для большинства типов данных.
- Нереляционные. The DB такого типа называются еще NoSQL. Связано это с тем, что они будут управляться специальными запросами, которые отличаются от SQL.
Это – основная классификация БД. Далее предстоит работать с реляционными таблицами и оперировать ими.
SQL – краткое описание
The SQL (the Structured Query Language) – это язык структурированных запросов. Он является декларативным. Применяется для модификации, управления, создания и удаления информации в реляционных БД.
The SQL – язык, на котором нельзя написать полноценное приложение. Он служит для управления информацией в БД и таблицах, выстраивании связей и «взаимоотношений». Это информационно-логическое средство.
Изначальное применение the SQL сводилось к:
- созданию новых таблиц в БД;
- изменению имеющихся записей;
- удалению информации;
- добавлению новых сведений в таблицы;
- выборке записей из одной или нескольких таблиц в зависимости от имеющегося условия;
- изменению табличных структур.
Текущий query language стал более сложным – в нем появились совершенно новые конструкции, привилегии и другие функции. С его помощью можно описывать и управлять новыми хранимыми объектами (триггерами, представлениями, индексами, хранимыми процедурами и так далее). Сейчас соответствующий язык больше напоминает «классический» язык разработки, но применяется он только относительно баз информации реляционного характера.
Понятие СУБД
Изучая the grant on и другие команды для различных операций с таблицами, стоит обязательно обратить внимание на понятие СУБД. В зависимости от системы управления базами данных будет меняться концепция реализации той или иной.
СУБД – это совокупность программных и лингвистических средств общего/специального назначения, которые обеспечивают управление созданием и дальнейшим использованием the databases.
СУБД – комплекс программ, который дает возможность создать базу информации, а затем управлять имеющимися записями:
- обновлять;
- выбирать;
- удалять;
- вставлять.
Существуют различные варианты СУБД – они могут поддерживать разнообразные операции и процедуры, инструменты и функциональность. Далее работа будет в the grant on и другими командами SQL будет базироваться на двух достаточно распространенных программах – the MySQL и the PostgreSQL.
PostgreSQL
PostgreSQL – свободная объектно-реляционная СУБД. Она поддерживается для основной массы UNIX-подобных систем, включая AIX, BSD, IRIX и другие. Соответствующее программное обеспечение работает на Windows, Linux и MacOS.
Проект имеет открытый исходный код и распространяется совершенно бесплатно. За счет the PostgreSQL удается создавать, хранить, а также работать с БД при помощи SQL-запросов. Программное обеспечение выделяется поддержкой разнообразных форматов информации, а также соответствием ACID. The PostgreSQL дает возможность разработчику и системному администратору работать с большим объемом данных, ведь размер the DB в виде одной таблицы может достигать 32 ГБ. Скорость обработки информации будет напрямую зависеть от имеющейся на задействованном оборудовании оперативной памяти.
Характеристика MySQL
При изучении the grant on и других запросов SQL, пользователи могут сталкиваться с различными СУБД. Еще один популярный вариант средств управления – это the MySQL. Это свободная реляционная СУБД, права на которую принадлежат компании Oracle. От предыдущего пакета приложений соответствующий вариант отличается ориентированностью. PostgreSQL – объектно-реляционное ПО, MySQL – только реляционное.
Распространяется the MySQL свободно – программисты часто создают дополнительные функции и инструменты «под заказ». Соответствующая СУБД позволяет работать с SQL queries и является наилучшим решением как для малых, так и для средних проектов. Входит в состав некоторых серверов. Служит основополагающим компонентом в клиент-серверных моделях. Дистрибутив рассматриваемого ПО включает в свой состав специальную внутреннюю библиотеку, за счет которой удается сформировать внутренний сервер и встраивать СУБД в автономные приложения.
С особо крупными базами информации MySQL не работает – такая возможность есть, но она отражается на быстродействии. Для небольших и средних объемов данных рекомендуется выбирать именно это программное обеспечение.
Команды SQL
Далее предстоит познакомиться с grad select и другими особенностями для полноценной работы с SQL-запросами. Перед детальным рассмотрением привилегий каждый администратор и разработчик должен освоить основные функции и операции с БД.
Условно каждый оператор может относиться к одному из 4-х видов:
- DDL – команды, необходимые для создания объектов в таблицах и описания структур;
- DML – операторы, используемые для корректировки информации;
- DLC – специальные команды, предоставляющие доступ к записям (сюда относятся привилегии);
- TCL – операторы, отвечающие за манипулирование транзакциями.
Далее предстоит рассмотреть каждый предложенный «блок», заострив внимание на привилегиях. Соответствующее направление имеет особую значимость в плане обеспечения информационной безопасности.
Категория DDL
DDL – это команды, которые служат базовыми для работы с любой БД. Сюда можно отнести такие записи как:
- Create. Оператор, отвечающий за непосредственное создание объектов. За счет create пользователи могут создавать the table и базы информации. Форма записи: create table «название_таблицы» или create database «имя_БД» соответственно.
- Alter. Оператор, который необходим для корректирования уже созданных БД-объектов. Пример использования (the example) – это правка названия имеющейся таблицы:
Это – начальные команды, на базе которых будет строиться дальнейшая работа, включая the grant on. Перед детальным изучением особенностей привилегий потребуется рассмотреть основные DML-операции. Без них управлять таблицами никак не получится.
Оператор Select
Select – это основной оператор SQL. С его помощью производится выборка информации из имеющейся таблицы. Форма представления команды:
Соответствующая команда поддерживает множество операторов. Указанные в синтаксической форме выше не являются обязательными. Каждый оператор Select предусматривает отличительные черты и области применения:
- Distinct и All. Используются системой для фильтрации выводимых записей. Distinct помогает выводить уникальные строки, исключая повторения. Вторая «команда» отобразит все имеющиеся строчки из таблицы. Именно такой вариант используется системой по умолчанию.
- From. Используется для указания списка таблиц, из которых система будет извлекать информацию.
- Where. The operator, который добавляет некоторые правила и принципы извлечения информации из БД. Пример – задействование в процессе выборки сравнения или логических операторов.
- Group by. Используется для группировки столбцов.
- Having – напоминает работу where. Связан с group by. Дает возможность классифицировать (группировать) материалы, но только агрегатного типа.
- Order by. Дает возможность задать вывод записей по возрастанию (ASC) или по убыванию (DESC). По умолчанию используется принцип «от меньшего к большему».
- Limit. Оператор, задействованный для ограничений на количество выводимых записей из первоначальной таблицы.
Select on to MySQL связан с grant. Это не единственная ключевая команда, которая относится к привилегиям SQL.
Update и Delete
Update используется для обновления записей в заданной таблице. Активируется после всех предусмотренных имеющимся запросом операций. Синтаксис будет таким:
Для удаления некоторых записей используется Delete:
Никаких дополнительных параметров, опций и значений соответствующие операции не имеют.
Insert
Изучая привилегии и grant select, разработчики должны хорошо разбираться в ключевых операциях над БД. Без них the grant в полной мере осознать и освоить не получится.
Вместе с Select-запросом одинаково часто используется команда Insert. Она встречается в grant достаточно часто. За счет insert пользователи смогут добавлять записи в таблицу. Синтаксическая форма записи:
Соответствующий оператор может использоваться с select и другими процедурами. The insert отвечает за добавление строк в таблицы, заполняя их перед этим теми или иными значениями. Записи могут быть вставлены перечислением посредством ключевого слова values (как указано выше, во втором примере) или через оператор select.
Управление транзакциями
Перед рассмотрением the grant select и других особенностей настройки привилегий, рекомендуется в первую очередь запомнить ключевые операции и процедуры над БД. Следующая категория операторов – управляющие транзакциями (the TCL).
Соответствующий «блок» ориентирован на контроль транзакций, реализованных через the databases и a table. Стоит обратить внимание на то, что работать с такими операциями рекомендуется через MySQL Workbench при выключенной опции автоматической фиксации изменений.
В TCL относятся следующие операции:
- commit – позволяет объявить транзакцию;
- rollback – дает возможность откатить объявленную ранее транзакцию;
- savepoint – используется для разделения всех транзакций на блоки с возможностью возврата к одному из них.
Новички практически не пользуются соответствующим типом операций, поэтому на них не стоит заострять внимание.
Привилегии и grant
Grant select – запись, которая напрямую связана с привилегиями. Соответствующий раздел особо важен для системных администраторов и специалистов по обеспечению безопасности. Команды, связанные с привилегированностью пользователей в SQL-таблицах относятся к типу the DLC.
Привилегии могут быть объектными и системными. Первые встречаются в PostgreSQL и MySQL. Grant имеет прямое отношение к соответствующему направлению.
Привилегия – это спектр действий, доступный для выполнения тем или иным пользователям. Пример – вход в систему. Соответствующая операция является минимальной привилегией. Это своеобразные «права», в которых grant on будет иметь особое значение.
Привилегии способны меняться с течением времени: обновляться, добавляться, отменяться. SQL поддерживает несколько привилегированных типов, которые соответствуют тем или иным видам операций.
Объектные
Объектный тип «доступа» – это возможность пользователя выполнять строго определенную команду. Они связаны как с клиентами, так и с таблицами. Даются конкретным пользователям для отдельных табличных информационных записей или для целой базы.
Тот, кто создал таблицу – ее непосредственный владелец. Это значит, что соответствующее лицо имеет все права (включая grant on) на a table. Владелец способен назначать различные права для других подключающихся в БД лиц.
Select | Выполнение запросов |
Insert | Разрешение на вставку (добавление) строк в tables |
Update | Отвечает за изменение уже имеющихся значений в строках. Ограничения – множество табличных столбцов. |
Delete | Разрешение на удаление строк |
Alter | Изменение структуры только таблицы или последовательности |
Execute | Выполнение хранимой процедуры или функции |
Index | Создание индекса для ранее сформированной DB table |
References | Разрешение на определение внешнего ключа, используемого одним или несколькими столбцами в таблице в виде родительского ключа. Соответствующие «полномочия» могут быть ограничены через указание столбцов. |
Выше – таблица, которая объясняет не grant on, но тесно связана с этой операцией. Она поможет разобраться в том, какие существуют объектные права для реализации.
Системные права
Второй тип «прав», связанный с grant – это системный вариант. Они не определяются в терминах для отдельных объектов. Носят название the system privileges или авторского права на БД (the database authorities). Системные права поддерживают возможность на создание новых элементов (объектов) БД.
DBA – DataBase Administrator | Позволяет клиенту выполнять действия администратора БД. Пользователь сможет распоряжаться ей, как собственноручно сформированной. |
Connect | Поддерживает право входа в систему и создания представлений и синонимов (альтернативных табличных имен). |
Resource | Предоставляет полномочия, позволяющие формировать индексы и таблицы. |
При праве DBA клиент сможет реализовывать grant to select on из любой table и представления, создавать объекты для других пользователей и предоставлять им разнообразные права. Сюда же включены такие операции как импорт и экспорт. DBA тесно связаны с системным администрированием. При использовании соответствующего полномочия над DBA-клиентом все равно будет находиться администратор, обладающий высшим авторским правом.
Выдача прав
Grant and select on to – запрос, с которым должен быть знаком каждый специалист по настройке полномочий и прав пользователей. Одним из наиболее значимых операторов управления информацией в БД служит grant. Им легко пользоваться, но делать это необходимо осторожно.
Grant служит для предоставления клиентам прав для оперирования табличной информацией и the databases. Это команда ««выдачи полномочий». Она может быть представлена самостоятельно (как grant on) или с дополнительными операторами. Примеры – с insert или select.
Синтаксическая запись grant элементарна. Она имеет следующий вид:
GRANT privileges ON object TO user;
Здесь:
- the privileges – любой из значений, указывающих на тип прав;
- object – имя объекта в the database, к которому предоставляется разрешение через grant;
- user – пользовательское имя (тот, кому предоставляются полномочия).
Первое значение в представленной записи может принимать различные параметры. К ним относят следующие полномочия:
Таблица, представленная выше, поможет быстрее понять, что делает grant select и другие формы использования соответствующего оператора. Именно поэтому сначала разработчик должен вникнуть в основные операции над БД, а затем приступать к погружению в grant.
Наглядный пример
Чтобы лучше понимать, как работает grant on select to, необходимо рассмотреть несколько наглядных примеров. Первый вариант – это предоставление прав на select, insert, delete и update в contacts. Привилегии должны быть присвоены пользователю adam. Для этого используется следующая форма записи grant on:
Второй вариант – применение ключевого слова all. С его помощью администратор укажет, что хочется предоставить все разрешения, исключая grant option:
Grant Select можно предоставить всем пользователям для contacts. Для этой цели используется символ «*» (звездочка, без кавычек):
Соответствующая форма записи актуальна и для других операторов/действий с записями в БД. Можно воспользоваться grant the select with grant option или без grant option. Администратор имеет право выдать «полномочия» на строго ограниченный спектр операций. Все это помогает обеспечивать контроль над безопасностью хранилища информации.
Отмена полномочий
Основы применения the grant to select on table_1 понятны. Теперь стоит изучить еще один важный оператор для работы с пользовательскими правами. Это – Revoke. Соответствующий оператор является противоположностью grant on. Он помогает отметить некоторые или все ранее присвоенные привилегии. Используется со всеми управляющими операторами.
Синтаксическая форма записи Revoke:
Таблица, указанная выше, демонстрирует, какие значения способен принимать параметр the privileges.
Примеры для изучения
Использование to grant a select on понятно. Revoke работает намного проще. Это отмена совершенной операции или присвоенных полномочий. Вот пример, в котором отменяются права update и delete для adam в contacts:
При помощи all пользователь сможет отметить все разрешения, исключая grant option:
Есть еще один момент, о котором должен помнить каждый администратор при использовании БД и настройке прав. Это исполнение функций и процедур.
Право на процедуры и функции
Основы использования grant on изучены. Чтобы предоставить права на реализацию конкретных процедур и функций, необходимо пользоваться Execute в качестве дополнения к the grant:
Здесь:
- execute – возможность выполнения заданной функции или процедуры;
- procedure/function – процедура/функция, которую разрешено выполнять;
- object – название объекта БД, для которого предоставляются права;
- user – имя пользователя.
По аналогии с grant on для отмены прав на процедуры и функции используется revoke execute. Здесь и тут можно увидеть больше примеров по изученному направлению. Быстрее освоить его с нуля помогут дистанционные компьютерные курсы.