Программирование >>  Программный интерфейс приложений 

1 ... 204 205 206 [ 207 ] 208 209 210 ... 264


Спецификатор Уровень применения привилегии привилегии

** Глобальные привилегии: все базы данных и все таблицы

* Глобальные привилегии, если не определена база данных

по умолчанию. В любом другом случае привилегии на доступ к текущей базе данных

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.



1 ... 204 205 206 [ 207 ] 208 209 210 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика