• mysql创建用户以及给用户授予权限


    新建用户

    create user username identified by '123456';
    
    • 1

    说明:
    username——你将创建的用户名,
    password——该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

    进入到mysql的客户端,在下图中可以看到,创建了一个用户名为xaiodong并且密码为123456的用户
    在这里插入图片描述
    这个时候创建的改用户只能看见一个库, information_schema

    重新开一个窗口,使用改用户进行测试,下图中登录到了新创建的用户中。
    在这里插入图片描述
    使用show databases查看有哪些数据库的时候,可以看到只有一个数据库
    在这里插入图片描述
    对于information_schema数据库,是mysql默认自带的数据库,新创建的用户xaiodong可以查看改数据库的部分表,由于这是mysql自带的数据库,所以最好不用动它。
    尝试使用改用户创建一个新的数据库的时候发现,没有无法创建,只是因为没有权限的问题,接下来,将会讲如何给改用户进行授权。
    在这里插入图片描述

    新用户授权

    下面给用户授权的命令

    grant all privileges on dbname.tbname to 'username'@'login ip' identified by 'password' with grant option;
    
    • 1

    详细说明

    grant all privileges 授予改用户对于数据库的所有权限
    dbname = * 表示所有数据库(也就是dbname为*的时候)
    tbname = * 表示所有表
    login ip = % 表示任何 ip都是通过改用户进行登录
    password 为空,表示不需要密码即可登录
    with grant option 表示该用户还可以授权给其他用户

    测试,目前在数据库中有一个数据库名为test2的数据库,在该数据库中有一张名字为user的表,将在root用户下,授予刚才新建的用户对于该数据库中该表的所有权限

    grant all privileges on test2.user to 'xiaodong'@'%' identified by '123456' with grant option;
    
    • 1

    在这里插入图片描述
    然后再新创建的用户xiaodong所在窗口中,查看数据库,可以看到刚才root用户授予权限的数据库test2
    在这里插入图片描述
    检测一下是否可以对该数据库进行操作呢,尝试往该数据库中插入一条数据

    在这里插入图片描述
    查入数据成功,说明给该用户的的授权成功
    由于新用户只对test2用户的user表有所有的权限,所有目前该新用户还没有其它权限,比如使用该用户创建新的数据库。
    在这里插入图片描述
    给该新用户授予所有的权限
    使用root用户登录之后使用下面的命令对于新用户授予该用户所有的权限

    GRANT ALL PRIVILEGES ON *.* TO 'xiaodong'@'%' Identified by "123456";
    
    • 1

    下图为新用户登录之后的界面,这个时候可以发现xiaodong用户目前有了创建用户并且可以看到所有的数据库等几乎所有权限。
    在这里插入图片描述
    对于上面的操作中对于一个新的用户授予所有的数据库的所有权限是一个比较危险的操作,因此再对于一个新的用户(特别是不是很信任的用户),可以设置比较具体的权限。下面将介绍如何授予比较具体的权限。

    更具体的授权

    可以将All替换成下面的10个比较细的权限,中间用逗哈进行隔开

    GRANT ALL PRIVILEGES ON *.* TO 'aaa'@'%' Identified by "123456" WITH GRANT OPTION;
    
    • 1

    privileges 包括:

    1. alter:修改数据库的表
    2. create:创建新的数据库或表
    3. delete:删除表数据
    4. drop:删除数据库/表
    5. index:创建/删除索引
    6. insert:添加表数据
    7. select:查询表数据
    8. update:更新表数据
    9. all:允许任何操作
    10. usage:只允许登录

    回收权限

    命令详解

    revoke privileges on dbname[.tbname] from username;
    
    • 1

    如下面为收回用户aaa的对于所有数据库的所有权限

    revoke all privileges on *.* from aaa;
    
    • 1

    修改用户的密码

    use mysql
    select * from user
    
    • 1
    • 2

    进入 mysql 库中
    修改密码;

    update user set password = password('qwe') where user = 'aaa';
    
    • 1

    刷新权限;

    flush privileges
    
    • 1
  • 相关阅读:
    04设计模式-建造型模式-工厂模式
    内容自动化的进阶之路:Kompas.ai带你走进智能创作时代
    Linux下gdb调试工具用法
    R语言使用plot函数可视化数据散点图,使用mtext函数在可视化图像的底部居中添加自定义文本标签(bottom)
    MiniDump
    php+mysql汽车配件管理系统wamp
    jwt ---- json web token
    基于JAVA国外摇滚乐队交流和周边售卖系统计算机毕业设计源码+数据库+lw文档+系统+部署
    局部最小值问题
    VS Code C# 开发工具包正式发布
  • 原文地址:https://blog.csdn.net/weixin_47994845/article/details/126300083