mysql权限管理

一.权限级别

'数据控制语言DCL(Data Control Language)',添加用户、对使用数据的用户授权等。 
1.Global level  #所有库,所有表的权限。
2.Database level #某个数据库中的所有表的权限。
3.able level  #库中的某个表的权限
4..Column level #表中的某个字段的权限。

 二. mysql用户管理

(一)创建用户

1. 创建用户
create   user     user1@'localhost'    identified   by  'QianFeng@123';
2.验证:

select  *  from mysql.user\G;
create  创建(关键字) user 用户(关键字) user1   用户名称(自定义)    @ 分隔(关键字)‘localhost’   允许登录的主机   identified by  身份认证(关键字)‘QianFeng@123’   用户密码

   (二) 删除用户
 

drop  user 'user1'@'localhost';
select * from mysql.user\G;

(三)修改用户密码

1.root修改自己密码 # mysqladmin    -uroot   -p'123'    password  'new_password'  
2.丢失root用户密码
当root用户,忘记了密码。可以使用破解的方式来登录系统。修改密码。
原理:使系统在启动时,不加载密码文件。

 a.修改mysql启动设置
     # vim /etc/my.cnf
    [mysqld]
    skip-grant-tables #去掉注释
    
b.重启mysql,无密码登录     
# systemctl    restart   mysqld
# mysql -uroot

c.修改自己的密码:
mysql>  update  mysql.user  set  authentication_string=password('QianFeng@123456789')  where  user='root'  and  host='localhost';

mysql> FLUSH PRIVILEGES;  #刷新权限
        
 d.修改mysql启动设置   注释掉跳过密码

(四) 登录mysql

 mysql   -P  3306  -u  root  -p123 mysql  -e  ‘show tables’
 #     -h    指定主机名                       【默认为localhost】
 #     -P    MySQL服务器端口           【默认3306】    大P
 #     -u    指定用户名                       【默认root】
 #     -p    指定登录密码                     【默认为空密码】
 # 此处mysql为指定登录的数据库名
 #    -e    接SQL语句
 免登录查询数据库
 mysql -uroot -p'QianFeng@123' -hlocalhost -P 3306 mysql -e 'show tables'

 (五) mysql 权限原理

grant  权限列表  on 库名.表名 to '用户名'@'客户端主机'  [identified by '密码'  with option参数];
'权限列表'
 all: 所有权限(不包括授权权限)
 select,update     查询更新
 
 '数据库.表名'
 *.*  所有库下的所有表
 web.* web库下的所有表
 web.stu_info web库下的stu_info表
 grant SELECT (id), INSERT (name,age) ON mydb.mytbl to 'user8'@'localhost' identified by 'QianFeng@123';     
'客户端主机'
% 所有主机
192.168.2.%            192.168.2.0网段的所有主机
192.168.2.168            指定主机
localhost                指定主机

 (六)MySQL权限示例

 '赋予权限'
  授权目标
  授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
  GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
  赋权示例
  1.准备测试账户 root账户创建:CREATE USER admin3@'%' IDENTIFIED BY 'QianFeng@123';
  2.授权账户 root账户授权 GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
  3.使用测试账户操作数据库
  [root@localhost ~]# mysql -uadmin3 -p'QianFeng@123'
  mysql> create database bbs;
  试试创建别的库 mysql> create database bba;
  ERROR 1044 (42000): Access denied for user 'admin3'@'%' to database 'bba'
  进入bbs库,创建数据表和插入数据。
  授权验证完毕
  
 '回收权限'
    '查看权限'
    查看自己的权限 SHOW GRANTS\G
    查看别人的权限 SHOW GRANTS FOR admin3@'%'\G
    
    '回收权限REVOKE'
    REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
    REVOKE ALL PRIVILEGES  ON bbs.*  FROM admin3@’%’;          #回收所有权限
    '删除用户的版本问题'
    5.6之前,先   revoke all privilege        再  drop user
    5.7之后,直接    drop user

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值