欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MYSQL笔记 之 用户权限管理

程序员文章站 2022-05-31 17:31:03
...

用户权限管理主要有以下作用:

可以限制用户访问哪些库、哪些表
可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作
可以限制用户登录的IP或域名
以限制用户自己的权限是否可以授权给别的用户
账号存储在:mysql库 → user表中

root账号

root账号默认只能本机访问,其它电脑无法连接使用!
注意:
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。
如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接。

查询用户

select host,user from user;

创建用户

%:任意电脑IP    
local:本地访问
'IP地址':指定某地址访问
create user 用户名@'%' identified by '密码';
flush privileges;//刷新权限,对于user表的所有操作后都应该刷新

修改用户密码

– 密码都会调用password()方法进行加密

update user set password = PASSWORD('新密码') where user = '用户名';//   5.7版本前
update user set authentication_string = password('新密码') where user = '用户名';    5.7版本后

删除用户

drop user '用户名';

授权语句 – grant

  1. 普通权限
    grant 权限 on 数据库对象 to 用户名;
    例:
    grant select on 库名.* to 用户名@'%';  //本条语句将某库下的所有表的select权限授予了某用户
    grant insert on test.* to 用户名@'%';   //插入权限
    grant update on test.* to 用户名@'%';   //修改权限
    grant delete on test.* to 用户名@'%';   //删除权限
    grant select,insert,update,delete on 库名.* to 用户名@'%';   //汇总
    
  2. 高级权限
     grant all privileges on test.* to 用户名@'%';   //该用户在普通权限的基础上拥有了表的增删查改权限
    

撤销权限

revoke 权限 on 数据库对象 from 用户名;
例:

revoke select on ps_java.* from 'passerby'@'%';
revoke all privileges, grant option from 'passerby'@'%';

查看当前用户权限

show grants;

查看其它用户权限

show grants for 用户名@'%';