一 Mysql用户管理
1>用户概念 用户@host
host 表示允许客户端连接的ip地址
举例 :localhost,192.168.6.10,192.168.6.*,%[代表所有ip都可以访问]
username
2>新建用户
create user 用户名@允许访问的主机名 identified by '密码';
--如果不指定主机名 默认为 %
3>删除用户
drop user 用户名@被允许的主机名
--如果没有指定主机名 删除时可以不指定主机名 默认为%
--如果指定了主机名 删除时 必须指定主机名 才能删除
4> 修改密码
第一种方式:登陆用户之后修改
set password for 用户名=password('密码');
第二种方式:登陆用户之后修改
user mysql;
update user for password=password('密码') where user='用户';
flush privileges;
第三种方式:不登陆用户,直接修改
MySQLadmin -uroot -proot password 密码(不需要单引号引起来)
第四种方式:
无密码登陆
修改my.ini在[mysqld]
添加一行 skip-grant-tables
二 权限管理
分为 用户权限,数据库权限,表权限
权限名:在user表中 所有的列中包含_priv的列 去掉_priv就是权限名
grant all [privileges] on *.* to 用户名@主机名;--最常用
grant all on *.* to 用户名@'主机名' identified by '密码'
1>用户权限
grant 权限名 on *.* to 用户名@主机名 [with grant option 表示可以将被授予的权限赋予给其他用户]
--权限数据会被写入到mysql.user表中
2>数据库权限
grant 权限名 on 数据库名称.* to 用户名@主机名 [with grant option 表示可以将被授予的权限赋予给其他用户]
--权限数据会被写入到mysql.db表中
3>表权限
grant 权限名 on 数据库名称.表名 to 用户名@主机名 [with grant option 表示可以将被授予的权限赋予给其他用户]
--权限数据会被写入到mysql.tables_priv表中
权限的大小 用户权限>数据库权限>表权限