语法:
grant 授权列表 on 数据库 to 用户@“ip地址” indentified by “密码” [with grant option]
授权列表:
个别权限:select,inster,update,delete。权限可以指定字段,例如update(name, tel)
所有权限:all
无权限:usage
数据库:数据库名.表名。例如 db1.user db2.* *.*
用户:用于连接数据库的用户名
ip地址:指定可以访问数据库的ip地址
本机:localhost
特定主机:192.168.4.15
某个网段:192.168.4.%
所有主机:%
密码:必须和主机的密码策略相同
with grant option:表示是否可以代替root把权限赋予其他用户
例:
grant select, update(name, tel), delete on *.* to client123@"%" identified by "qq123456..A" with grant option
# 赋予用户client123对所有数据库中的所有表具有select,update(name, tel),delete权限
# 所有主机都可以使用这个用户访问数据库,用户可以代替root把权限赋予别的用户
访问和使用:
客户端进行访问:
mysql -h192.168.4.5 -uclient123 -pqq123456..A
select user() #查看本机登录数据库的用户
show grants #查看登录用户的权限
set password = password("明文密码") #修改密码,密码通过password函数进行加密
管理员操作用户:
set password for client123@"%" = password("明文密码") #管理员修改用户密码
show grants for client123@"%" #管理员查看用户权限
drop user client123@"%" #管理员删除用户
授权库:(数据库名是mysql,用于记录授权信息的数据库)
use mysql #切换到mysql数据库
user表:记录用户信息
db表:记录用户对数据库的权限
tables_priv表:记录用户对于表的权限
colums_priv表:记录用户对于表中字段的权限
# 通过查看这些表可以得到某个用户对于数据库以及表和表中字段的权限
# 通过修改这些表可以修改用户的权限
修改这些表之后使用 flush privileges刷新权限表
写总结的第三十三天!!!