Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:






???????
 
 Sysadmin
 ??????????????
 ????? ? ?????
 ??????????
 ???????????? ???????
 ?????????????
 ? ???????
 ? ???????????
 ???????? ? ??????
 ???????????
 ??????????? ???????
 ???????? ????? ?????? ?????? ???????? ??????????
 ??????
 ??????
 ?????? ?????? 1924-1994
 ??????? ?? ??????
 ???? ? ???????
 ????? ??????????
 ?????????


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

?????????? ????? ????????????? ? MySQL



????????????? ????? ????????? ????? ?????????? ????????? - ??? ?????? ??????? GRANT ??? ???????? ? ??????? ?????????? ?????????? MySQL. ???????????????? ???????????? ??????? GRANT - ???? ?????? ????? ? ???? ?????? ??????.
.
www.mysql.com

See section 4.3.1 ????????? ?????? GRANT ? REVOKE.

?????????? ????? ??????? ?????????? ???????? (????? ??? phpmyadmin), ??????? ?????? ??? ???????? ? ????????????????? ?????????????.

? ??????????? ???? ???????? ???????????????, ??? ???????????? ?????? mysql ??? ??????? ????? ?????????????. ? ???????? ??????????????, ??? ?????????? ??????????? ? ???????????? ? ????????? ?? ????????? ??????????, ?????????? ? ?????????? ???????. ??? ????????, ??? ??? ???????? ????????? ?? ??? ?? ??????????, ??? ??????? mysqld, ?????????? ?????????????? ? ??????? ??? ???????????? MySQL root, ? ? ???????????? root ?????? ???? ?????????? INSERT ??? ???? ?????? mysql, ? ????? ???????????????? ?????????? RELOAD. ????? ????, ???? ??? ??????? ?????? ???????????? root, ??? ?????????? ??????? ????? ??? ??????? mysql.

????? ????????????? ????? ?????????, ????????? ??????? GRANT:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

??? ??????? GRANT ??????? ???? ????? ?????????????:

monty
??????????? ????????????????? - ?? ????? ?????????????? ? ??????? ?????? ??????, ?? ?????? ???????????? ??? ????? ?????? some_pass. ???????? ???????? ?? ??, ??? ?? ?????? ????????? ????????? GRANT ??? ??? monty@localhost, ??? ? ??? monty@"%". ???? ?? ???????? ?????? ? localhost, ?????? ?????????? ???????????? ??? localhost, ??????? ????????? ??? ?????? mysql_install_db, ????? ????? ???????????? ??? ????????????? ? ?????????? ??????????, ??? ??? ? ??? ??????? ????? ???????????? ???????? ??? ???? Host, ? ??? ??????????? ?????? ? ??????? user.
admin
????????????, ??????? ????? ?????????????? ? localhost ??? ??????; ??? ????????? ???????????????? ?????????? RELOAD ? PROCESS. ??? ?????????? ????????? ???????????? ????????? ??????? mysqladmin reload, mysqladmin refresh ? mysqladmin flush-*, ? ????? mysqladmin processlist. ??? ?? ????????? ??????? ??????????, ??????????? ? ????? ?????? (?? ????? ????????? ?????, ????????????? ???????? ???????? GRANT).
dummy
????????????, ??????? ????? ?????????????? ? ??????? ??? ??????, ?? ?????? ? ?????????? ??????????. ??? ?????????? ?????????? ??????????? ? ???????? 'N'-??? ?????????? USAGE, ??????? ????????? ????????? ????????????? ??? ??????????. ??????????????, ??? ??????????? ? ????? ?????? ?????????? ????? ????????? ?????.

????? ???????? ???????? ????? ????? ?? ?????????? ? ???????????? ??? ?????? ????????? INSERT, ? ????? ???? ??????? ??????? ????????????? ??????? ?????????? ??????????:

shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user SET Host='localhost',User='admin',
-> Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;

? ??????????? ?? ?????? MySQL ? ???????, ??????????? ????, ????? ??????????? ????????? ?????????? ???????? 'Y' (? ??????? ?? Version 3.22.11 ???? ?????? ???????? ??????????). ??? ???????????? admin ???????????? ????? ????????????? ??????????? ????????? ??????? INSERT, ??????? ???????? ??????? ? ?????? 3.22.11.

???????? ????????: ????? ??????? ?????????????????, ?????????? ??????? ?????? ??????? user ? ?????? ??????????, ?????????????? ? ???????? 'Y'. ??? ????????????? ???????? ???????? ? ??????? ?????? db ??? host.

??????? ?????????? ? ??????? user ? ????????? ????????? INSERT (??? ???????????? dummy) ?? ???? ?????? ????, ??????? ?????? ???????? ??? ????????? ???????? ?? ????????? ???????? 'N'. ????? ??? ?? ????????? ??????? GRANT USAGE.

? ??????????? ???? ??????? ??????????? ???????????? custom, ??????? ????? ?????????????? ? ??????????? localhost, server.domain ? whitehouse.gov. ?? ????? ???????? ?????? ? ???? ?????? bankaccount ?????? ? ?????????? localhost, ? ???? ?????? expenses - ?????? ? whitehouse.gov, ? ? ???? ?????? customer - ?? ???? ???? ???????????, ? ????? ???????????? ?????? stupid ??? ????????????? ?? ???? ???? ???????????.

????? ?????? ??? ?????????? ???????????? ??? ?????? ????????? GRANT, ????????? ????????? ???????:

shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO custom@localhost
-> IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON expenses.*
-> TO custom@whitehouse.gov
-> IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON customer.*
-> TO custom@\%'
-> IDENTIFIED BY 'stupid';

?????????? ??? ???????????? custom ?? ????????? ??????, ??? ???? ???????????? ????? ???????? ?????? ? MySQL ??? ? ?????????? ?????????? ????? ?????? Unix, ??? ? ? ?????????? ?????????? whitehouse.gov ????? ???????? TCP/IP.

????? ?????? ?????????? ???????????? ????? ????????????????? ???????? ????????? ? ??????? ?????????? ??????????, ????????? ????????? ??????? (???????? ???????? ?? ??????? FLUSH PRIVILEGES ? ????? ???????):

shell> mysql --user=root mysql
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('localhost','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('server.domain','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('whitehouse.gov','custom',PASSWORD('stupid'));
mysql> INSERT INTO db
-> (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
-> Create_priv,Drop_priv)
-> VALUES
-> ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
-> (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
-> Create_priv,Drop_priv)
-> VALUES
-> ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
-> (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
-> Create_priv,Drop_priv)
-> VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;

?????? ??? ????????? INSERT ????????? ? ??????? user ??????, ??????? ???????? ???????????? custom ???????????? ? ????????? ??????????? ? ????????? ???????, ?? ?? ???? ??? ??????? ?????????? (??? ?????????? ??????????? ? ???????? ?? ????????? ???????? 'N'). ????????? ??? ????????? INSERT ????????? ?????? ? ??????? db, ? ??????? ??????????? ?????????? ??? ???????????? custom ?? ????????? ? ????? ?????? bankaccount, expenses ? customer, ?? ?????? ???? ?????? ?????????????? ? ???????????? ???????????. ??? ??????, ????? ???????? ????????? ??????????????? ? ??????? ?????????? ?????????? ??????? ?????????? ???? ??????? ?? ???????????? ???? ?????? (??? ?????? FLUSH PRIVILEGES), ????? ????????? ????????? ???????? ? ????.

???? ?????????? ???????????? ????????????? ???????????? ?????? ? ?????? ?????????? ? ????????????? ??????, ????? ??????????????? ?????????? GRANT ????????? ???????:

mysql> GRANT ...
-> ON *.*
-> TO myusername@"%.mydomainname.com"
-> IDENTIFIED BY 'mypassword';

????? ??????? ?? ?? ????? ????? ????????????????? ???????? ????????? ? ??????? ?????????? ??????????, ????????? ????????? ????????:

mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',
-> PASSWORD('mypassword'),...);
mysql> FLUSH PRIVILEGES;

User Comments
Posted by [name withheld] on December 3 2003 10:31pm [Delete] [Edit]

I had to use:

GRANT ALL PRIVILEGES ON bCo.* TO `nan@%` IDENTIFIED BY 'weenie'
WITH GRANT OPTION;

instead of:

GRANT ALL PRIVILEGES ON bCo.* TO nan@\%` IDENTIFIED BY 'weenie'
WITH GRANT OPTION;

as shown in the documentation in order for the query to execute.
Posted by [name withheld] on December 30 2003 1:15pm [Delete] [Edit]

Your second example, in which you claim MySQL is wrong in their documentation, will not work because you are trying to use a backquote (`) instead of the single quote ('). They look similar but are completely different. Thus your example:

GRANT ALL PRIVILEGES ON bCo.* TO nan@\%` IDENTIFIED BY 'weenie' WITH GRANT OPTION;

does not work because nan@\%` is not properly quoted. It should read nan@\%' instead which is fine. This works as expected:

GRANT ALL PRIVILEGES ON bCo.* TO nan@\%' IDENTIFIED BY 'weenie' WITH GRANT OPTION;
Posted by Mike Barrett on January 7 2004 10:52am [Delete] [Edit]

I wanted to create a use who can

1) login with a password either locally or from within our local 10.*.*.* network

2) do anything they want to their own database

3) see what other databases are on the server, but not do anything to them (to facilitate requests for additional access).

This seemed to do the trick:
GRANT SHOW DATABASES ON *.* TO hubert@localhost IDENTIFIED BY 'password';
GRANT SHOW DATABASES ON *.* TO hubert@\10.%' IDENTIFIED BY 'password';
GRANT ALL ON hubertsdb.* TO hubert;





Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"