增加新用户。(注意:和上面不同,下面的因为是MySQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:
grant select,insert,update,
delete on *.* to test1@"%" Identified by "abc";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的MySQL数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作
(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据
库,只能通过MySQL主机上的web页来访问。
grant select,insert,update,
delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb
.* to test2@localhost identified by \"\";
注意:这些都是在mysql语句环境下执行,同时需要root权限,远程登录授权是把远程ip设为
--%。
附:1.查看用户权限:
use information_schema;
select * from user_privileges;
2.- 添加用户
---这些是利用privileges做文章,通过插入,更新,删除,提供用户授权.
use mysql;
insert into user(host, user, password) values("%", "root",
password("yourpassword"))
grant all privileges on *.* to 'root'@'%' with grant option
#赋予任何主机访问数据库权限
flush privileges;
关闭远程访问:
use mysql;
update user set host = "localhost" where user = "root" and host=
"%";
flush privileges;