mysqlshow
Эта маленькая утилита может быстро предоставить информацию о вашей установке MySQL и составляющих ее базах данных.
□ Без параметров она отображает все имеющиеся базы данных.
□ С базой данных в качестве параметра она выводит таблицы этой базы данных.
□ С именами базы данных и таблицы утилита отображает перечень столбцов заданной таблицы.
□ Если заданы база данных, таблица и столбец, утилита выводит подробную информацию о заданном столбце.
Создание пользователей и наделение их правами доступа
В роли администратора MySQL вам чаще всего придется обслуживать пользователей: добавлять, и удалять пользователей СУРБД MySQL и управлять их полномочиями. Начиная с версии MySQL 3.22, правами доступа или полномочиями пользователей управляют в мониторе MySQL с помощью команд grantи revoke— задача, гораздо менее устрашающая, чем непосредственная корректировка таблиц прав доступа, которая требовалась в ранних версиях MySQL.
grant
Команда MySQL grantпочти, хотя и не полностью, соответствует синтаксису стандарта SQL92. Далее приведен общий формат:
grant < привилегия > on < объект > to < пользователь > [identified by user-password] [with grant option];
В табл. 8.6 перечислено несколько значений прав доступа, которые могут быть предоставлены.
Таблица 8.6
| Значение |
Описание |
alter |
Изменять таблицы и индексы |
create |
Создавать базы данных и таблицы |
delete |
Удалять данные из базы данных. |
drop |
Удалять базы данных и таблицы |
index |
Управлять индексами |
insert |
Вставлять данные в базу данных |
lock tables |
Разрешает блокировать таблицы |
select |
Извлекать данные |
update |
Изменять данные |
all |
Все вышеперечисленные |
У некоторых прав доступа есть дополнительные опции. Например, create viewдает пользователю право создавать представления. Для получения полного списка прав доступа обратитесь к документации MySQL, относящейся к вашей версии СУРБД, поскольку эта область расширяется с каждой новой версией MySQL. Существует также несколько специальных административных прав доступа, но здесь мы их не рассматриваем.
Объект, которому вы предоставляете данные права, обозначается как
databasename.tablename
и в лучших традициях Linux *— ссылка на любое имя, поэтому *.*означает все объекты в каждой базе данных, a foo.*— все таблицы в базе данных foo.
Если заданный пользователь уже существует, права доступа корректируются с учетом вносимых вами изменений. Если такого пользователя нет, он создается с заданными правами доступа. Как вы уже видели, пользователей можно задавать на определенных компьютерах. Пользователя и компьютер следует задавать в одной команде для того, чтобы в полной мере использовать гибкость схемы предоставления прав доступа MySQL.
В синтаксисе языка SQL специальный символ %— символ подстановки, во многом сходный, с символом *в среде командной оболочки. Вы можете формировать отдельные команды для каждого требуемого набора прав доступа, но если, например, вы хотите предоставить доступ пользователю rick с любого компьютера в домене wiley.com, пользователя rick можно описать как
rick@'%.wiley.com'
Символ подстановки %всегда следует заключать в кавычки для того, чтобы отделить его от остальных текстовых данных.
Вы также можете применять нотацию IP/Netmask (N.N.N.N/M.M.M.M), задающую сетевой адрес для управления доступом.
Также, как раньше вы использовали описание rick@'192.163.0.0/255.255.255.0'для предоставления пользователю rick доступа с любого сетевого компьютера, можно задать rick@'192.168.0.1'для ограничения доступа пользователя rick единственной рабочей станцией или ввести rick@'192.0.0.0/255.0.0.0', расширив область действия прав до любой машины в сети 192 класса А.
В еще одном примере команда
mysql> GRANT ALL ON foo.* TO rick@'%' IDENTIFIED BY 'bar';
создает пользователя rick с полным набором прав доступа к базе данных fooдля подключения с любой машины с начальным паролем bar.
Если базы данных fooдо сих пор не существует, у пользователя rick теперь появится право создать ее с помощью команды SQL create database.
Читать дальше