|
Программирование >> Программный интерфейс приложений
Спецификатор Уровень применения привилегии привилегии ** Глобальные привилегии: все базы данных и все таблицы * Глобальные привилегии, если не определена база данных по умолчанию. В любом другом случае привилегии на доступ к текущей базе данных db name Привилегии уровня базы данных: все таблицы указанной базы данных db name.tbl name Привилегии уровня таблицы: все столбцы указанной таблицы tbl name Привилегии уровня таблицы: все таблицы указанной таб- лицы базы данных по умолчанию В предложении то определяется пользователь (или пользователи), которым предоставляются привилегии. Каждый спецификатор user включает имя username@hostname с необязательным предложением identified by. В качестве имени пользователя user name может выступать как обычное имя, так и пустая строка ( ), которая определяет анонимного пользователя. В качестве имени компьютера host name можно указывать localhost, имя компьютера, IP-адрес или образец, соответствующий имени домена или сетевому номеру. Символы типа % и имеют такое же значение, как и в операторе like. Предложение username без определенного имени компьютера является аналогом записи user name@%. В MySQL версии 3.23 и выще в качестве имени компьютера host name может выступать пара 1Р-адрес/маска сети, представленная в записи п.п.п.п/т, где п.п.п.п ~ IP-адрес, а от - число бит, используемых для сетевого номера. Предложение identified by позволяет присвоить пароль пользователю. Этот пароль должен задаваться просты.м текстом (без функции password), в отличие от способа определения пароля с помощью оператора set password. Если такой пользователь уже существует, а предложение identified by определено, новый пароль заменяет старый. В любом другом случае старый пароль остается неизменным. Оператор grant впервые появился в MySQL 3.22.11. Ниже представлено несколько примеров использования оператора grant. Дополнительные примеры можно найти в главе 11, Обшее администрирование MySQL . Давайте сначала создадим пользователя paul, который с любого компьютера сможет получать доступ ко всем таблицам базы данных sampdb. Два следующих оператора являются эквивалентными, поскольку отсутствующая часть имени компьютера в идентификаторе user является аналогом символа % : grant all on samp db.* to paul identified by secret grant all on samp db.* to paul@% identified by secret Теперь создадим пользователя с правами чтения таблиц базы данных menagerie. Этот пользователь сможет подключаться к ним только с компьютеров домена xyz . com: grant select on menagerie.* to lookonly@%.xyz.com identified by ragweed Для создания пользователя, который обладает полными привилегиями для доступа к таблице member базы данных samp db, но может подключиться только с одного компьютера, воспользуйтесь следующим оператором: grant all on samp db.member to member mgr@boa.snake.net identified by doughnut Чтобы создать суперпользователя, который может выполнять все операции, в том числе и предоставлять привилегии другим пользователям, однако подключаться только с локального компьютера, примените оператор: grant all on *.* то superduper@localhost identified by homer with grant option И наконец, давайте создадим анонимного пользователя для базы данных menagerie, который может подключаться с локального компьютера без пароля: grant all on menagerie.* to @localhost INSERT insert (low priority delayed] (ignore] [into] tblname [{columnjist]] values {expr [, expr] ...) [, (...)] ... insert [low priority delayed] [ignore] [into] tblname [ {columnjist) ] select . . . insert [low priority delayed] [ignore] [into] tblname set colname=expr [, col name=expr] . . . Вставляет строки в существующую таблицу tbl name и возвращает число вставленных строк. Ключевое слово необходимо использовать только в MySQL 3.22.5. При определении ключевого слова l0w pri0rity оператор не выполняется, пока хоть один пользователь читает данные таблицы. Это слово впервые появилось в MySQL версии 3.22.5. При определении ключевого слова DELAYED строки помещаются в очередь для более поздней вставки, и оператор завершает свое выполнение. Благодаря этому клиент может довольно быстро продолжить работу. Однако в этом случае функция last insert id() не возвратит значение auto iNCREMENT ДЛЯ столбца auto lNCREMENT таблицы. Ключевое слово DELAYED Впервые появилось в MySQL версии 3.22.15. Если задано ключевое слово IGNORE, все строки с дублирующим значением для уникальных ключей игнорируются. Если же это слово не определено, а такие строки имеются, возникает ошибка и последующие строки не вставляются. Ключевое слово IGNORE впервые появилось в MySQL версии 3.22 10. Первая форма оператора INSERT требует определения списка VALUES () всех вставляемых значений. Если список столбцов columnjist не определен, список VALUES {) должен задавать по одному значению для каждого столбца таблицы. Если в списке columnjist указывается несколько имен столбцов, их следует разделять запятыми Соответственно для каждого указанного столбца необходимо определить в списке VALUES () по одному значению. Столбцам, имена которых не указаньг в списке, присваиваются значения по умолчанию. В версиях MySQL 3.22.5 и более поздних можно определять несколько списков значений, что позволяет с помощью одного оператора INSERT вставлять несколько строк. В MySQL версии 3.23.3 и более поздних версий список VALUES () может быть пустым. В таком случае вставляется новая строка, во всех столбцах которой устанавливаются значения по умолчанию Вторая форма оператора INSERT выбирает записи в соответствии с установками оператора SELECT и вставляет их в таблицу tbl name. Оператор SELECT должен выбирать столько столбцов, сколько содержится в таблице tbl name или определено в списке columnjist. Если определен список столбцов, то не указанные в нем столбцы заполняются значениями по умолчанию. Третья форма оператора INSERT, впервые появившаяся в MySQL 3.22.10, вставляет определенные в предложении SET столбцы, устанавливая в них заданные выражения. И опять, если имя столбцов не указывается, в них устанавливаются значения по умолчанию. INSERT INTO absence {student id, date) VALUES(14, 1999-11-03 ),(34,NOW!)) INSERT INTO absence SET student id = 14, date = 1999-11-03 INSERT INTO absence SET student id = 34, date = NOW() INSERT INTO score (student id, score, event id) SELECT student id, 100 AS score, 15 AS event id FROM student KILL KILL threadJd Удаляет поток сервера с номером threadjd. Для выполнения этого оператора пользователь должен обладать привилегией PROCESS. Иначе пользователь сможет удалить только свой собственный поток. Команда mysqladmin jilll позволяет выполнить аналогичную операцию, хотя в ее командной строке можно задать сразу несколько ID-номеров потоков. В строке оператора KILL можно задать только один номер. Этот оператор впервые появился в MySQL 3.22.9.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |