新建mysql用户无法远程连接或者无法看到数据库等,用户权限管理的问题

mysql中mysql数据库中的user表,是整个mysql用户的信息;

  • 不过如果直接查看select * from user;字段太多折行,没法看
  • 装换成列式式:select * from user \G;
  • 可以看到可以执行的权限和相关的权限

系统默认的账户是没有配置远程访问:需要在权限表中配置,需要在host项配置为%;就可以使这个账号远程访问,

  • %:代表所有的主机
    • 默认的话是localhost:代表只能本机通过命令行访问
    • 也可以设置某网段,或者某ip访问提高安全
创建用户:create user zhang3 identified by ‘123123’;
  • 表示创建名称为zhang3的用户,密码设为123123;且host默认是%是可以远程访问的账号

查询user表,我们也可以看到相关的权限insert,update…,这些都是可以手动授权给某用户,比如只能看到a数据库,对a数据库只能读

  • 授权命令:
    grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
    该权限如果发现没有该用户,则会直接新建一个用户。
    比如
    grant select,insert,delete,drop on test.* to li4@localhost ;
  • 给li4用户用本地命令行方式下,授予atguigudb这个库下的所有表的插删改查的权限。
    grant all privileges on . to joe@’%’ identified by ‘123’;
    #授予通过网络方式登录的的joe用户 ,对所有库所有表的全部权限,密码设为123.
收回权限
  • 查看当前用户权限
    show grants;
  • 收回权限命令:
    revoke 权限1,权限2,…权限n on 数据库名称.表名称 from 用户名@用户地址 ;
    REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
  • 收回全库全表的所有权限
    REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;

必须用户重新登录后才能生效

查看权限
  • 查看当前用户权限
    show grants;
  • 查看某用户的全局权限
    select * from user ;
  • 查看某用户的某个表的权限
    select * from tables_priv;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值