mysql用户操作

基本操作

查看现有用户

1
mysql> SELECT host,user,authentication_string FROM mysql.user;

创建用户(% 允许任意ip登录,可固定ip, 192.168.1.% ip段登录, localhost 本地登录)

1
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';

删除用户

1
mysql> DROP USER 'username'@'host';

更改用户名

1
mysql> RENAME USER 'jack'@'%' to 'jim'@'%';

修改密码

1
2
3
4
5
// 1.用 set password 命令
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

// 2.用mysqladmin
mysqladmin -uroot -p旧密码 password 新密码

授权

格式:

1
mysql> GRANT privileges ON databasename.tablename TO 'username'@'host' IDENTIFIED BY 'password' WITH GRANT OPTION;

1. GRANT命令说明:

  • priveleges (权限列表,底部附权限列表),可以是 ALL PRIVILEGES 表示所有权限,也可以是 select、update 等权限,多个权限的名词,相互之间用逗号分开。
  • ON 后面指定权限针对哪些库和表,*.* 表示所有库所有表。
  • TO 表示将权限赋予某个用户。
  • IDENTIFIED BY 指定用户的登录密码,该项可以省略。
  • WITH GRANT OPTION 表示该用户可以将自己拥有的权限授权给别人,该项可以省略。
  • 备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加一个 select 权限,然后又给用户添加一个 insert 权限,那么该用户就同时拥有了 select 和 insert 权限。

2. 授权原则说明:

权限控制主要是出于安全因素,因此需要遵循一下几个经验原则:

  1. 只授予能满足需要的最小权限。
  2. 初始化数据库的时候删除没有密码的用户。
  3. 为每个用户设置满足密码复杂度的密码。
  4. 定期清理不需要的用户,回收权限或者删除用户。

eg:

1
2
3
4
5
6
7
8
// 授予 user1 用户通过外网IP对于所有数据库的全部权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%';

// 授予 user1 用户在本地服务器对于 database1 数据库的查询和更新权限
mysql> GRANT select,update ON `database1`.* TO 'user1'@'localhost';

// 刷新权限(修改完权限需要刷新才会生效)
mysql> flush privileges;

查看当前用户权限

1
mysql> SHOW GRANTS;

查看其他用户的权限

1
mysql> SHOW GRANTS FOR 'user1'@'%';

删除权限

1
mysql> REVOKE insert ON test.* FROM 'user1'@'%';

附:Mysql权限列表

权限 作用范围 作用
all 服务器 所有权限
select 表、列 选择行
insert 表、列 插入行
update 表、列 更新行
delete 表 删除行
create 数据库、表、索引 创建
drop 数据库、表、视图 删除
reload 服务器 允许使用flush语句
shutdown 服务器 关闭服务
process 服务器 查看线程信息
file 服务器 文件操作
grant option 数据库、表、存储过程 授权
references 数据库、表 外键约束的父表
index 表 创建/删除索引
alter 表 修改表结构
show databases 服务器 查看数据库名称
super 服务器 超级权限
create temporary tables 表 创建临时表
lock tables 数据库 锁表
execute 存储过程 执行
replication client 服务器 允许查看主/从/二进制日志状态
replication slave 服务器 主从复制
create view 视图 创建视图
show view 视图 查看视图
create routine 存储过程 创建存储过程
alter routine 存储过程 修改/删除存储过程
create user 服务器 创建用户
event 数据库 创建/更改/删除/查看事件
trigger 表 触发器
create tablespace 服务器 创建/更改/删除表空间/日志文件
proxy 服务器 代理成为其它用户
usage 服务器 没有权限

评论