第六章 mysql 权限管理

1.用户管理

 

1. 登录和退出MySQL
远程登陆:
客户端语法:mysql  -u  用户名  -p  密码  -h  ip地址   -P端口号:如果没有改端口号就不用-P指定端口
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123

如果报错进入server端服务器登陆mysql执行:

mysql> use mysql

mysql> update user set host = '%' where user = 'root';

mysql> flush privileges;

 

# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -e 'show databases;'
-h  指定主机名            【默认为localhost】
-大P MySQL服务器端口       【默认3306】
-u  指定用户名             【默认root】
-p  指定登录密码           【默认为空密码】
-e  接SQL语句,可以写多条拿;隔开
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -D mysql -e 'select host from user;'
此处 -D mysql为指定登录的数据库
修改端口rpm安装:vim /etc/my.cnf
在到【mysql】标签下面添加port=指定端口。重启服务

2.创建用户
方法一:CREATE USER语句创建

 

mysql> create user tom@'localhost' identified by 'qf@123'; #创建用户为tom,并设置密码。
mysql> FLUSH PRIVILEGES; #更新授权表
注:
identified by :设置密码
在用户tom@'  ' 这里 选择:
%:允许远程登陆。也可以指定某个ip,允许某个ip登陆。也可以是一个网段。
%:包括所有的主机,不包括本机(127.0.0.1),但是不包括(localhost)
==客户端主机     %                    所有主机
            192.168.246.%           192.168.246.0网段的所有主机
            192.168.246.252         指定主机
            localhost                指定主机

方法二: GRANT语句创建 ---授权。

 

mysql> GRANT ALL ON *.* TO 'user3'@’localhost’ IDENTIFIED BY 'Qf@123';
            #权限 库名.表名  账户名                设置密码
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

 

修改远程登陆:
将原来的localhost修改为%或者ip地址
mysql> use mysql
mysql> update user set host = '192.168.246.%' where user = 'user3';
mysql> FLUSH PRIVILEGES;

3、刷新权限

 

修改表之后需要刷新权限
方式1:
    mysql > flush privileges;

 

使用命令授权:grant   
   也可创建新账户(不过后面的版本会移除这个功能,建议使用create user) 
语法格式:
grant 权限列表  on 库名.表名 to '用户名'@'客户端主机' IDENTIFIED BY 'Qf@123';
 ==权限列表     all         所有权限(不包括授权权限)
            select,update   
            select, insert  
                                
 ==数据库.表名   *.*         所有库下的所有表                  Global level
               web.*        web库下的所有表                  Database level
            web.stu_info    web库下的stu_info表              Table level
给刚才创建的用户tom授权:
mysql> grant select,insert on *.* to 'tom'@'localhost';
mysql> FLUSH PRIVILEGES;

4、查看权限

 

查看权限
1.看自己的权限:
mysql> SHOW GRANTS\G
*************************** 1. row ***************************
Grants for root@%: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
    
2.看别人的权限:
mysql> SHOW GRANTS FOR tom@'localhost'\G
*************************** 1. row ***************************
Grants for tom@localhost: GRANT SELECT, INSERT ON *.* TO 'tom'@'localhost'  

5、修改密码

 

===root修改自己密码
方法一:
# mysqladmin -uroot -p'123' password 'new_password'     //123为旧密码
案例:
# mysqladmin -uroot -p'qf123' password 'qf@123';
方法二:
mysql>SET PASSWORD='new_password';

==root修改其他用户密码
mysql> use mysql
mysql> SET PASSWORD FOR user3@'localhost'='new_password'
                                用户             =  新密码

6、删除用户

 

方法一:DROP USER语句删除
DROP USER 'user3'@'localhost';

方法二:DELETE语句删除
DELETE FROM mysql.user  WHERE user='tom' AND host='localhost';

更新授权表:  FLUSH PRIVILEGES;

7、权限控制机制

 

四张表:user   db    tables_priv  columns_priv
1.用户认证
查看mysql.user表
2.权限认证
以select权限为例:
1.先看 user表里的select_priv权限
 Y:不会接着查看其他的表  拥有查看所有库所有表的权限
 N:接着看db表
2.db表:  存储了某个用户对一个数据库的权限。
 Y:不会接着查看其他的表  拥有查看所有库所有表的权限
 N:接着看tables_priv表
3.tables_priv表:可以对单个表进行权限设置
 table_priv:如果这个字段的值里包括select  拥有查看这张表所有字段的权限,不会再接着往下看了
 table_priv:如果这个字段的值里不包括select,接着查看下张表还需要有column_priv字段权限
4.columns_priv:针对数据列设置操作权限.
 column_priv:有select,则只对某一列有select权限
             没有则对所有库所有表没有任何权限
 注:其他权限设置一样。



 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值