delete from mysql.user where user="";  删除匿名用户
set password=PASSWORD('pass');      设置登录密码
FLUSH PRIVILEGES;


create user sky;
select host,user,password from mysql.user;
可以看到sky用户信息

drop user sky;
select host,user,password from mysql.user
可以看到sky用户信息没了

mysql> ? create user  看帮助

mysql>create user sky identified by "123";

查看某个用户的权限
show grants for 'sky'@'%';
USAGE 权限最小
%代表所有机器IP

提权
mysql> grant select on vfast.* to "sky"@"%";

回收权限
mysql> revoke select on vfast.* from "sky"@"%"

lab
同一用户,不同IP,不同或相同密码,对某一库的权限不同

删除一个用户例子
revoke all privileges  on *.* from "rhce"@"192.168.18.234";
drop user "rhce"@"192.168.18.234";

给192.168.18.234这台机器登陆mysql对VFAST库的操作是只读(select)权限
grant select on vfast.* to "sky"@"192.168.18.234" identified by "123";

给192.168.18.200这台机器登陆mysql对VFAST库的操作是select,insert,delete,update权限
grant select,insert,delete,update on vfast.* to "sky"@"192.168.18.200"identified by "123";

select host,password,user from user;



测试在192.168.18.234上登陆mysql

mysql -h 192.168.18.254 -u sky -p123
mysql> use vfast;
mysql> insert into H1 values(00);
正确提示  拒绝插入

在192.168.18.200上登陆mysql

mysql -h 192.168.18.254 -u sky -p123

mysql> show databases;
mysql> insert into H1 values(00);
mysql> delete from H1 where id=00;
mysql> update H1 set id=16 where id=17;  将ID=17改为等于16
mysql> select * from H1;
以上命令都可以正常执行成功

mysql> drop table H1;  执行不成功  没权限

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
权限中全局最大

GRANT ALL PRIVILEGES ON *.* TO 'kyo'@'%' identified by '123';
flush privileges  刷新权限
ALL PRIVILEGES 所有权限
*.* 所有库的所有表
kyo 登陆用户,%允许登陆的IP 其代表所有

‘123’ 登陆密码

登陆后能干什么
select  查看
ALL PRIVILEGES  所有权限

权限指定符 权限允许的操作 
  Alter       修改表和索引 
  Create      创建数据库和表 
  Delete      删除表中已有的记录 
  Drop    抛弃(删除)数据库和表 
  INDEX      创建或抛弃索引 
  Insert      向表中插入新行 
  REFERENCE   未用 
  Select     检索表中的记录 
  Update      修改现存表记录 
  FILE       读或写服务器上的文件 
  PROCESS    查看服务器中执行的线程信息或杀死线程 
  RELOAD     重载授权表或清空日志、主机缓存或表缓存。 
  SHUTDOWN   关闭服务器 
  ALL       所有;ALL PRIVILEGES同义词 
  USAGE     特殊的“无权限”权限

权限涉及三个表
mysql.user
mysql.db
mysql.tables_orive

 删除权限
revoke all privileges on *.* from 'kyo'@'%';

show grants for 'kyo'@'%';
USAGE 权限最小

忘记密码怎么办
方法一
[root@convirt ~]# vim /etc/my.cnf 
skip-grant-tables   #本地和远程登陆不管用户是谁都可以跳过密码
重启mysql 

直接不用密码登陆
mysql> flush privileges ;

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' identified by '';  password is null

##方法二测试不成功
mysqld_safe --skip-grant-tables
即可跳过密码验证文件登陆(本地和远程都可以)
            --skip-networking   网络不可以登陆只能本地
改口令
update mysql.user set password=password('456') where user=“kyo” and host=“localhost”;
password('456')
kyo@localhost的密码改为456

password 是将密码456加密


如何下线未知用户
查看谁在登陆数据库
show full processlist 可以看到进程ID
改掉该用户的密码  然后刷新生效 杀死其登陆进程。对方就会被踢下线,在连接密码错误,无法登陆。
kill $ID 杀死用户登陆ID 强迫其重新登陆

results matching ""

    No results matching ""