grant priv_type on database.table to user [identified by [password] 'password']
priv_type:新用户的权限
database.table:新用户的权限范围,即只能在指定的数据库和表上使用自己的权限
user:指定新用户的账户,由用户名和主机名构成
identified by:用来设置密码
password:表示新用户的密码
例子:
1 2
grant select on *.* to 'test3'@localhost identified by 'test3'; grant all privileges on *.* to 'test3'@'localhost' identified by password '*06C0BF5B64ECE2F648B5F048A71903906BA08E5C';
二、修改用户
1
rename user <旧用户> to <新用户>
旧用户:系统中已经存在的 mysql 用户账号
新用户:新的 mysql 用户账号
注:使用 rename user 语句,必须拥有 mysql 数据库的 update 权限或全局 create user 权限
1
rename user 'test1'@'localhost' to 'test2'@'localhost';
三、删除用户
1. 使用 drop 语句
1
drop user <用户1> [,<用户2>]...
使用 drop user 语句必须拥有 mysql 数据库的 delete 权限或全局 create user 权限
在 drop user 语句的使用中,若没有明确给出账户的主机名,则该主机名默认为 ‘%’
用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,因为 mysql 并不会记录是谁创建了这些对象
1
drop user 'test1'@'localhost';
2. 使用 delete 语句
1
delete from mysql.user where Host = 'hostname' and User = 'username';
必须拥有 mysql.user 表的 delete 权限
四、权限管理
1. 查看用户管理
使用 select * from mysql.user; 要执行该语句,必须拥有对 user 表的查询权限
show grants for 'username'@'hostname';
2. 用户授权
1
grant priv_type [(column_list)] on database.table to user [IDENTIFIED BY [PASSWORD] 'password'] [, user[IDENTIFIED BY [PASSWORD] 'password']] ... [WITH with_option [with_option]...]
priv_type:权限类型
column_list:权限作用于哪些列上,省略该参数时,表示作用于整个表
database.table:用于指定权限的级别
user:表示用户账户,由用户名和主机名构成,格式是 ‘username‘@’hostname’
identified by :用来为用户设置密码
password:用户的新密码
with 关键字后面带有一个或多个 with_option 参数,这个参数有5个选项,详细介绍如下:
TO子句:如果权限被授予给一个不存在的用户,Mysql 会自动执行一条 create user 语句来创建这个用户,但同时必须为该用户设置密码
1 2
grant select, insert on *.* to 'test'@'localhost' identified by 'test' with grant option; # 使用 grant 创建一个新用户 test,密码为 test,用户对所有的数据有查询、插入权限,并授予 grant 权限
3. 删除用户权限
使用 revoke 语句删除某个用户的某些权限(此用户不会被删除)
1 2
# 1. 删除用户某些特定的权限 revoke priv_type [(column_list)]... on database.table from user[, user]...
priv_type:表示权限的类型
column_list:表示权限作用于哪些列上,没有该参数时作用于整个表上
user:由用户名和主机名构成,格式为 ‘username‘@’localhost’
1 2
# 2. 删除特定用户的所有权限 revoke all privileges, grant option from user [, user] ...
使用 revoke 语句,必须拥有mysql 数据库的全局 create user 权限或 update 权限
1 2
# 例子 revoke insert on *.* from 'test'@'localhost';
五、修改密码
修改普通用户密码
1. 使用 set 语句修改普通用户密码
1
set password for 'username'@'localhost' = password('newpwd');