<入门级>Mysql账户管理(账户的添加,授权,改密,删除)

Mysql账户管理入门

可以这样讲,能否对数据库的账户进行基本的管理,区分"小白"和"老鸟"的一个衡量标准.

Mysql数据库管理系统中,root用户拥有最高权限(与Linux类似),但不能让每一名开发者都拥有这么高的权限,所以要对不同级别的使用者进行相应的授权.

Mysql的用户权限信息都存储在数据库mysql中的user表中;

坦率的讲…普通程序员,根本用不到这方面的知识

查看已有的数据库账户

  • 1.登录数据库
    • mysql -uroot -p
  • 2.进入mysql数据库
    • use mysql;
  • 3.查看已有账户信息(可登录的主机ip,用户名,加密后的密码)
    • select host,user,authentication_string from user;
账户信息

创建新用户:

语法:

  • grant 权限列表 on 授权的数据(数据库,数据表) to "用户名"@"主机名" identify by "密码";
权限关键词 作用 级别
create 创建数据库 数据库级别操作(高)
alter 创建数据表 数据表级别操作(中)
drop 删除数据表 数据表级别操作(中)
insert 往表中插入数据 数据级别操作(低)
update 更新表中数据 数据级别操作(低)
delete 删除表中数据 数据级别操作(低)
select 读取表中数据 数据级别操作(低)

示例:

  • grant all privileges on jd.* to "Mike"@"%" identify by "mike111";

  • 最后刷新权限flush privileges

将数据库jd的完整权限,授权给新用户Mike,新用户可从任何主机登录数据库,Mike的密码为"mike111"

撤销用户权限(root用户操作)

语法

  • revoke 权限列表 on 授权的数据(数据库,数据表) from "用户名"@"主机名";

示例

  • revoke insert on jd.* from "Mike"@"%";

撤销用户"Mike"往数据表中插入数据的权限

  • 最后刷新权限flush privileges

修改账户密码("用户名和密码"都"区分"大小写):

用户无需登录,即可修改自己的密码(以为Mike修改密码为例):

  1. 打开终端,输入mysqladmin -uMike -pmike321
  2. 回车
  3. 输入旧密码
  4. 新密码"mike321"生效

root用户修改下属用户的密码(需要root用户登录):

root改密码的本质是修改mysql数据库中user表中字段authentication_string中的值

密文

密码的密文由mysql的内置函数password产生,password函数可接收"明文密码"字符串,产生"密文字符串",root修改密码也就是先使用内置函数password产生密文,然后使用新密文替换旧密文.密码修改完成!

语法:

  • update 表名 set authentication_string = password("新密码") where user = "用户名";

示例:

  • update user set authentication_string = password("mike321") where user="Mike";

  • 最后刷新权限flush privileges

删除用户(root权限):

简单方式

语法

  • drop user "用户名"@"主机";

示例

drop user "Mike"@"%";

直接删user表中的记录(如果第一种删不掉,就用这种方式)

  • 语法
  • delete from 表名 where user = "用户名";

  • 示例
    delete from mysql.user where user="Mike";


坦率的讲,小白学数据库的账户管理,无非就是"赚着卖白菜的钱,却操着卖白粉的心",普通程序员,也基本用不到这方面的知识,这是项目的管理者才会用到的东西.

上一篇:Apache 配置 SELinux 命令的时候的命令 semanage


下一篇:精析Python3实现动态web服务(附服务端源码)