MySQL 安全管理

Dos下进入mysql的方法

1.进入mysql安装目录

cd C:\Program Files\MySQL\MySQL Server 5.6\bin

2.用户登入

mysql -hlochlhost -uabc -pabc

-h:表示服务器名,lochlhost是本机

-u:用户名

-p:密码,如果用户没密码就直接-p即可。

linux登入mysql

先启动服务:service mysql start  --5.6
          service mysqld start --5.7


登入mysql:mysql -uroot -p123456

create user创建用户

CREATE USER  li@localhost IDENTIFIED BY 'li';

授予用户li数据库person的所有权限,并允许用户li将数据库person的所有权限授予其它用户

GRANT ALL ON PERSON.* TO li@localhost WITH GRANT OPTION;

立即生效,如果授予的权限没有生效执行以下命令,在5.6版本更改即会生效。

FLUSH PRIVILEGES;

GRANT创建用户

如果当前不存在用户,GRANT可以在授予权限的时候创建用户

授予用户数据库person所有表的select,insert权限。

GRANT SELECT,INSERT ON PERSON.* TO 'abc'@'localhost' identified by 'abc';

同时运行用户abc将person数据库的SELECT,INSERT权限授予给其它用户
GRANT SELECT,INSERT ON PERSON.* TO 'abc'@'localhost' identified by 'abc' with grant option;
创建用户root密码123456并赋予服务器所有权限,允许IP192.168.1.5的客户端连接。
grant all privileges on *.* to root@'192.168.1.5' identified by '123456'

退出当前用户

exit

查看当前用户的权限

show grants;

查看用户abc的权限

show grants for abc@localhost


REVOKE回收权限

回收用户abc数据库person的insert的权限

REVOKE INSERT ON PERSON.* FROM abc@localhost;

回收权限

回收person数据库abc的所有权限
REVOKE ALL ON PERSON.* FROM abc@localhost;

回收abc的所有数据库所有权限
REVOKE ALL ON *.* FROM abc@localhost;

删除用户

在早期版本需要回收用户的权限之后才能删除用户。

DROP USER abc@localhost;

 修改用户密码

use mysql;

UPDATE user SET password=PASSWORD('输入新密码') WHERE user='用户名';

FLUSH PRIVILEGES;

权限表字段详解

基于mysql5.6

user表

user表的权限是基于服务器范围的所有权限,比如用户拥有服务器中所有数据库的select权限那么在user表中的Select_priv列为Y,如果用户单单只拥有某个一数据库的select权限那么user表中的Select_priv为N,会在DB表中记录一条信息在DB表中的select_priv为Y。

desc mysql.user;

filed                  type                            null key default

Hostchar(60)    NO   PRI       主机名,localhost表示本地登入,%表示不受限制,也可以单独赋予某个IP的访问权限。  
Userchar(16)NOPRI 登入用户名 
Passwordchar(41)NO  登入用户密码 
Select_privenum('N','Y')NO Nselect权限 
Insert_privenum('N','Y')NO Ninsert权限
Update_privenum('N','Y')NO Nupdate权限 
Delete_privenum('N','Y')NO Ndelete权限 
Create_privenum('N','Y')NO Ncreate权限 
Drop_privenum('N','Y')NO Ndrop权限
Reload_privenum('N','Y')NO N执行刷新和重新加载MySQL各种内部缓存命令的权限 
Shutdown_privenum('N','Y')NO N关闭mysql服务器的权限,不能授予root外的其它用户 
Process_privenum('N','Y')NO N执行show processlist命令的权限 
File_privenum('N','Y')NO N执行SELECT INTO OUTFILE和LOAD DATA INFILE命令 
Grant_privenum('N','Y')NO N是否可以将权限授予其它用户 
References_privenum('N','Y')NO N参照表的权限
Index_privenum('N','Y')NO N创建删除索引的权限 
Alter_privenum('N','Y')NO NALTER权限 
Show_db_privenum('N','Y')NO N查看有哪些数据库的权限
Super_privenum('N','Y')NO NSuper权限,包括kill权限。 
Create_tmp_table_privenum('N','Y')NO N创建创建临时表权限 
Lock_tables_privenum('N','Y')NO N执行lock table权限 
Execute_privenum('N','Y')NO N执行存储过程权限 
Repl_slave_privenum('N','Y')NO N复制相关的权限 
Repl_client_privenum('N','Y')NO N复制相关的权限 
Create_view_privenum('N','Y')NO N创建视图的权限 
Show_view_privenum('N','Y')NO N查看视图的权限 
Create_routine_privenum('N','Y')NO N创建函数、存储过程等权限 
Alter_routine_privenum('N','Y')NO N修改删除函数、存储过程等权限 
Create_user_privenum('N','Y')NO N创建用户的权限 
Event_privenum('N','Y')NO N创建、修改和删除事件的权限 
Trigger_privenum('N','Y')NO N创建、修改和删除触发器的权限 
Create_tablespace_privenum('N','Y')NO N创建表空间的权限 
ssl_typeenum('','ANY','X509','SPECIFIED')NO   
ssl_cipherblobNO   
x509_issuerblobNO   
x509_subjectblobNO   
max_questionsint(11) unsignedNO 0最多问题数 
max_updatesint(11) unsignedNO 0允许的最大更新 
max_connectionsint(11) unsignedNO 0允许的最大连接 
max_user_connectionsint(11) unsignedNO 0 
pluginchar(64)YES   
authentication_stringtextYES   
password_expiredenum('N','Y')NO N 

db表

如果授予一个用户单独某个数据库的权限,就会在db表中记录一条相关信息。

desc mysql.db;

filed                  type          null    key   default

Host                           char(60)                 NO        PRI                 主机名,localhost代表只能本地登入,如果是%表示不受限制,也可以单独赋予某个IP的访问权限。
Dbchar(64)NOPRI 数据库名 
Userchar(16)NOPRI 用户名 
Select_privenum('N','Y')NO Nselect权限 
Insert_privenum('N','Y')NO Ninsert权限 
Update_privenum('N','Y')NO Nupdate权限 
Delete_privenum('N','Y')NO Ndelete权限 
Create_privenum('N','Y')NO Ncreate权限 
Drop_privenum('N','Y')NO Ndrop权限 
Grant_privenum('N','Y')NO N是否可以将权限授予其它用户  
References_privenum('N','Y')NO N 
Index_privenum('N','Y')NO N创建删除索引的权限 
Alter_privenum('N','Y')NO NALTER权限 
Create_tmp_table_privenum('N','Y')NO N创建临时表的权限 
Lock_tables_privenum('N','Y')NO N执行lock table权限 
Create_view_privenum('N','Y')NO N创建视图的权限 
Show_view_privenum('N','Y')NO N查看视图的权限 
Create_routine_privenum('N','Y')NO N创建函数、存储过程的权限 
Alter_routine_privenum('N','Y')NO N修改删除函数、存储过程的权限  
Execute_privenum('N','Y')NO N执行存储过程的权限 
Event_privenum('N','Y')NO N创建、修改、删除事件的权限 
Trigger_privenum('N','Y')NO N创建、修改、删除触发器的权限 

 

 

 

备注:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值