По умолчанию
по умолчанию
Password
char(16)
Select_priv
enum('N','Y')
N
Update_priv
enum('N','Y')
N
Delete_priv
enum('N','Y')
N
Create_priv
enum('N','Y')
N
Drop priv
enum('N','Y')
N
Reload priv
enum('N','Y')
N
Shutdown_priv
enum('N','Y')
N
Process_priv
enum('N','Y')
N
File_priv
enum('N','Y')
N
Grant_priv
enum('N','Y')
N
References_priv
enum('N','Y')
N
Index_priv
enum('N','Y')
N
Alter_priv
enum('N','Y')
N
В колонках Host и User можно использовать символ «% », заменяющий произвольную последовательность символов. Например, имя узла «chem%lab» включает в себя «chembiolab», «chemtestlab» и т. д. Специальное имя пользователя «nobody» действует как одиночный «% », то есть охватывает всех пользователей, не упомянутых где-либо в другом месте. Ниже разъясняется смысл различных прав доступа:
Select_priv
Возможность выполнять команды SELECT.
Insert__priv
Возможность выполнять команды INSERT.
Update_priv
Возможность выполнять команды UPDATE.
Delete_priv
Возможность выполнять команды DELETE.
Createjyriv
Возможность выполнять команды CREATE или создавать базы данных.
Drop_priv
Возможность выполнять команды DROP для удаления баз данных.
Reload_priv
Возможность перезагружать информацию о доступе с помощью mysqladmin reload.
Shutdown_priv
Возможность останавливать сервер через mysqladmin shutdown.
Process_priv
Возможность управлять процессами сервера.
File_priv
Возможность читать и записывать файлы с помощью команд типа SELECT INTO OUTFILE и LOAD DATA INFILE.
Grant_priv
Возможность давать привилегии другим пользователям.
Index_priv
Возможность создавать и уничтожать индексы.
Alter_priv
Возможность выполнять команду ALTER TABLE.
В MySQL есть специальная функция, позволяющая скрыть пароли от любопытных глаз. Функция password() зашифровывает пароль. Ниже показано, как использовать функцию password() в процессе добавления пользователей в систему.
INSERT INTO user (Host, User, Password, Select_priv,
Insert_priv, Update_priv, Dclete_priv)
VALUES ('%', 'bob', password('mypass'), 'Y', 'Y', 'Y'.'Y')
INSERT INTO user (Host, User, Password, Select_priv)
VALUES ('athens.imaginary.com', 'jane', '', 'Y')
INSERT INTO user (Host, User, Password)
VALUES ('%', 'nobody', ")
INSERT INTO user (Host, User, Password, Select_pnv,
Insert_priv, Updatejriv, Delete_priv)
VALUES ('athens.imaginary.com', 'nobody',
password('thispass'), 'Y', 'Y', 'Y', 'Y')
Имена пользователей MySQL обычно не связаны с именами пользователей операционной системы. По умолчанию кли-ентские средства MySQL используют при регистрации имена пользователей операционной системы. Для них, однако, не требуется обязательного соответствия. В большинстве клиентских приложений MySQL можно с помощью параметра -и подключиться к MySQL, используя любое имя. Точно так же ваше имя как пользователя операционной системы не появится в таблице user, если не будет специально включено в нее с присвоением прав.
Первый созданный нами пользователь, «bob», может подключаться к базе данных с любого компьютера и выполнять команды SELECT, INSERT, UPDATE и DELETE. Второй пользователь, «jane», может подключаться с «athens.imaginary.com», не имеет пароля и может выполнять только SELECT. Третий пользователь - «nobody» - с любой машины.'Этот пользователь вообще ничего не может делать. Последний пользователь -«nobody» - с машины «athens.imaginary.com», он может выполнять SELECT, INSERT, UPDATE и DELETE, как и пользователь «bob.»
Как MySQL производит сопоставление? Возможно, вы обратили внимание, что некоторое имя может соответствовать на деле нескольким записям. Например, «nobody@athens.imaginary.com» соответствует и «nobody@%», и «nobody@athens.imaginary.com». Прежде чем осуществлять поиск в таблице user, MySQL сортирует данные следующим образом:
- Сначала ищется соответствие для узлов, не содержащих масок « % », при этом пустое поле Host трактуется как «% ».
- Для одного и того же узла сначала проверяется соответствие имен, не содержащих масок. Пустое поле User трактуется как содержащее «%».
- Первое найденное соответствие считается окончательным.
В предыдущем примере пользователь сначала будет сравниваться с «nobody» из «athens.imagmary.com», поскольку «athens.imaginary.com» в порядке сортировки стоит выше «% ». Поскольку имена компьютеров сортируются раньше имен пользователей, значения привилегий для компьютера, с которого вы подключаетесь, имеют приоритет перед любыми конкретными правами, которые у вас могут быть. Например, если таблица user содержит записи:
Host |
User |
||
% athens .imaginary .com |
jane |
||
и jane подключается с «athens.imaginary.com», то MySQL будет использовать привилегии, данные «athens.imaginary.com».