mysql数据库怎么添加用户并授权?

查询所有用户

方式1:

mysql> select host, user, password from MysqL.user;               -- 5.7版本之前的
MysqL> select host, user, authentication_string from MysqL.user;  -- 5.7版本之后的,包括5.7

方式2:

MysqL> select distinct concat('User: ''',user,'''@''',host,''';') as query from MysqL.user;

查询用户权限

all表示所有权限

select表示只查权限

update表示只改权限

delete表示只删权限等。

方式1:

MysqL> show grants for "user"@"host";
MysqL> show grants for "root"@"localhost";

方式2:

MysqL> select * from MysqL.user where user='root'\G;

添加授权用户(新创建的用户认情况下是没有任何权限的):使用root用户登录数据库

命令格式如下:

MysqL> create user "用户名"@"IP地址" identified by "密码";
MysqL> create user "haidon" identified by "123456";       -- 此时密码为123456,host值为%。
MysqL> create user "haidon"@"%" identified by "123456";   -- 此时密码为123456

分配用户权限(给用户授权)

命令格式如下:

MysqL> grant 权限类型 on 数据库名.表名 to '用户名'@'ip地址' identified by '用户密码' with grant option;

常用的权限类型有以下几种:

all privileges:所有权限。
select:读取权限。
create:创建权限。
delete:删除权限。
update:更新权限。
drop:删除数据库、数据表权限。

允许访问所有数据库下的所有表

MysqL> grant all privileges on *.* to '用户名'@'指定ip' identified by '用户密码' ;

允许访问指定数据库下的所有表

MysqL> grant all privileges on test.* to '用户名'@'指定ip' identified by '用户密码' ;

允许访问指定数据库下的指定表

MysqL> grant all privileges on test.test to '用户名'@'指定ip' identified by '用户密码' ;
 
MysqL> grant all privileges on tornado.* to 'haidon'@'%' identified by '123456';

收回用户权限(使用root用户操作)

MysqL> revoke select on tornado.* from "haidon"@"%";
MysqL> revoke all on tornado.* from "haidon"@"%";

删除授权用户

MysqL> drop user "haidon"@"%";                      -- 删除方法1
MysqL> delete from MysqL.user where user="haidon";  -- 删除方法2

刷新权限

MysqL> flush privileges;

以上就是MysqL实现添加用户并授权的详细内容,更多请关注编程之家其它相关文章

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...