mysql 网络授权工具,mysql授权

添加一个本地用户,名为username密码为password

GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

添加一个远程用户,名为username密码为password

GRANT create,select,insert,update,delete ON *.* TO username@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON database.* TO username@"111.111.111.111" IDENTIFIED BY 'password' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;

mysql创建和删除用户方法

关键字: 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 "";

撤权并删除用户

要取消一个用户的权限,使用REVOKE语句。REVOKE的语法非常类似于GRANT语句,除了TO用FROM取代并且没有INDETIFED BY和WITH GRANT OPTION子句:

REVOKE privileges (columns) ON what FROM user

例如:revoke usage on *.* from username@localhost;

grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

user部分必须匹配原来GRANT语句的你想撤权的用户的user部分。privileges部分不需匹配,你可以用GRANT语句授权,然后用REVOKE语句只撤销部分权限。

REVOKE语句只删除权限,而不删除用户。即使你撤销了所有权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须用一条DELETE语句明确从user表中删除用户记录:

use user;

DELETE FROM user WHERE User='user_name' and Host='host_name';

FLUSH PRIVILEGES;

DELETE语句删除用户记录,而FLUSH语句告诉服务器重载授权表。(当你使用GRANT和REVOKE语句时,表自动重载,而你直接修改授权表时不是。)

分析用户授权:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

select User, Host from user;

show grants for username@localhost;

delete from user where User='username' and Host='localhost';

FLUSH PRIVILEGES;

show grants for username@localhost;

select * from mysql.user where user='username'\G

select * from mysql.db where user='username'\G

=========================================

简单说,mysql库是mysql系统的管理数据库,它里面存放了用户信息和配置信息,其中最主要的两个:

mysql.user:用户库,里面有全局的权限。

mysql.db :按库来指定的权限

but:用grant把一个用户加了好几个库的访问权限,然后不管是用revoke删除权限,还是用delete删除用户后,然后再随便把这个用户赋予某一个库的权限后,这个用户以前所有的权限都出来了。

没办法解决,只能从mysql.db中用命令删除数据

delete from mysql.db where User='username' and Host='173.234.50.142';

delete from mysql.user where User='username' and Host='173.234.50.142';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值