用户管理
主要为了控制权限,让不同开发者,仅能操作属于自己的业务范围内的数据
创建mysql账户
账户中涉及的三个数据
- 账户名、密码、ip地址
- ip是用于限制某个账户只能在哪个机器上登录
------------------------第一种方式--------------------------- # 创建user语法: create user 用户名@客户端主机地址或网段 identified by 密码 例如: create user "plf"@"localhost" identified by "123456"; 查看创建用户 select user,password,host from mysql.user; mysql.user表 与用户相关信息 mysql.db表 用户的数据库权限信息 mysql.tables_priv表 用户的表权限 columns_priv 表 用户的字段权限 # 授权用户语法: grant [权限1,...权限n|all] on *.* to 用户名@客户端主机地址或网段; 例如: grant all on *.* to "plf"@localhost; 刷新权限 flush privileges; ------------------------第二种方式--------------------------- grant [权限1,...权限n|all] on *.* to 用户名@主机地址 identified by 密码; 刷新权限 flush privileges; # 测试 都在root权限下查看 create database day42 charset utf8; use day42; create table day42.a(id int); grant all on day42.* to lt@localhost identified by "123456"; flush privileges; select user,password,host from mysql.user; select user,host from mysql.db; select user,host from mysql.tables_priv; select user,host from mysql.columns_priv; # 收回权限 ----------------------第1种方式:直接删除用户--------------------- drop user 用户名@主机 ----------------------第2种方式:回收权限--------------------- revoke all on *.* from 用户名@主机名; # 问题? 如果授权了一个all权限的用户A,然后利用A去创建一个新用户并授权all,能够行的通? 答案是行不通的。 可以通过root用户的如下sql,创建A用户。然后A用户就可以创建其他用户了 grant all on day42.* to lt@localhost identified by "123456" with grant option;