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";

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