当前位置:Gxlcms > 数据库问题 > Mysql 数据库的权限问题

Mysql 数据库的权限问题

时间:2021-07-01 10:21:17 帮助过:18人阅读

之前一直对Mysql数据库的权限没太理解

root用户具有最高的权限,也就是超级用户,root用户可以看到数据库中的所有的内容,而其它用户只能对经过root用户授权过的数据库进行操作,如果想在其它用户中创建新的数据库       而对root用户不可见,是不行的,而将其它用户的权限设置成:

      grant all on *.* to ‘my_user‘@‘localhost‘;

      这时,其它用户的权限相当于root 用户,没有实际意义。

      revoke all on *.* from ‘my_user‘@‘localhost‘;//回收用户的权限

      grant all on db.* to ‘my_user‘@‘localhost‘;//只授予对db数据库的操作权限

      grant select(stu_no) on db.stu to ‘my_user‘@‘localhost‘;//只授予对db数据库的stu表的stu_no列的select权限   列级授权

      select * from mysql.user

      技术分享图片

     查看用户的权限,注:此时查看到的是全局权限,也就是对所有数据库的操作权限而:

       grant all on *.* to ‘my_user‘@‘localhost‘;//授予的是数据库权限,全局权限>数据库权限,当全局权限不满足条件时再查看数据库权限

     修改全局权限:

     update mysql.user set Create_priv=‘Y‘ where user=‘my_user‘;此时会报错,因为mysql安全模式下非主键无法执行update和delete操作

     这时查看mysql.user 表:

     desc mysql.user

    技术分享图片

    这张表中host和user是组合主键,所以有两种修改方法:

    ①set sql_safe_updates=0;

    ②update mysql.user set Create_priv=‘Y where user=‘my_user‘ and host=‘localhost‘;

查看授予给指定用户的权限

show grants for ‘my_user‘@‘localhost‘

技术分享图片

 

Mysql 数据库的权限问题

标签:mysql数据库   str   png   http   模式   cal   blog   log   操作权限   

人气教程排行