Тема 8: Команды определения доступа к данным в базах данных SQLite3 (DCL операторы)

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы уже подошли к восьмой теме в процессе разговора про базы данных SQLite, я уже определился, что всего будет 17 или 18 тем, прочитав которые вы изучите язык SQL, основы теории баз данных и научитесь работать с базами данных SQLite. Но, хочу обратить ваше внимание на то, что, изучив SQLite и ее реализацию SQL, вы без труда сможете овладеть более сложными и масштабными СУБД, такими как PostgreSQL и MySQL. В процессе написания уже 15 тема. А вот публикую только восьмую...

Команды определения доступа к данным в базах данных SQLite3 (DCL операторы)

Команды определения доступа к данным в базах данных SQLite3 (DCL операторы)

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


DCL команды или операторы определения доступа к данным

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

При помощи команд определения доступа к данным можно одному пользователю разрешить выполнять команду SELECT, а другому нет, третий пользователь может не иметь прав даже на просмотр данных из определенной таблицы или базы данных, четвертый имеет права выполнять только команду INSERT для таблицы table1, а пятый только команду DELETE для таблиц table7 и table8. А может, мы хотим, чтобы новый пользователь мог только модифицировать таблицу при помощи команды UPDATE? Отлично, команды определения доступа к данным нам в этом помогут. А для кого-то мы можем выделить только группу команда определения данных и этот пользователь сможет только создавать таблицы, модифицировать таблицы и удалять их и при этом он не будет знать какие данные будут записаны в таблицах. А еще, какому-нибудь пользователю мы можем разрешать выполнять только транзакции, иногда это бывает даже полезно. В общем, чтобы ограничить права доступа к данным используются специальные команды DCL или DCL операторы, список которых вы можете найти ниже:

  • GRANT – SQL команда, позволяющая выдать права доступа пользователю на определенные операции с объектами базы данных;
  • REVOKE – SQL команда, которая позволяет отозвать у пользователя ранее выданные разрешения;
  • DENY – SQL команда, устанавливающая приоритетный запрет.

На самом деле для задания прав доступа к данным трех DCL операторов более чем достаточно. Думаю, на этом теории хватит, давайте теперь посмотрим, как реализован доступ к данным в SQLite.

Определение доступа к данным в SQLite

Давайте теперь рассмотрим, какие команды из группы DCL есть в SQLite3 и как они работают.

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

А вот права доступа на использование тех или иных операторов разработчики SQLite3 предлагают реализовывать на уровне приложения, в которое встроена библиотека SQLite3.

Хочу обратить ваше внимание: несмотря на то, что библиотека SQLite3 не имеет команд определения доступа к данным, это не означает, что у данной СУБД отсутствуют возможности администрирования и конфигурирования баз данных, просто все это настолько отличается от других СУБД, что на изучение можно выделить несколько тем.

Для нас же сейчас важно, что SQLite3 не имеет команд определения доступа к данным.

Текст комментария: