mysql 创建用户、分配权限、删除用户

1、登录mysql

[root@zadce29s8xdazvt1cmel22z ~]# mysql -uroot -p
Enter password: 

mysql>

2、查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql>

3、查看现有用户

mysql> select host,user,authentication_string from mysql.user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *3FC37DE73C15FD3379955B89CA2222E21DF7F734 |
| localhost | mysql.session | *AHISISNOTTVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *AHISISNOTAXALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql> 

 4、创建用户

mysql> create user 'test'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

eg:
1.mysql->create user 'username'@'localhost' identified by '123456';

2.mysql->create user 'username'@'192.168.0.1' identified by '123456';

3.mysql->create user 'username'@'%' identified by '123456';

 localhost           为本地登录用户
 用户名@IP地址        用户只能该IP下才能访问
 用户名@192.168.1.%   用户只能在改IP段下才能访问(通配符%表示任意)
 用户名@%             用户可以再任意IP下访问(默认IP地址为%)

5、分配权限

grant  权限 on 数据库.表 to   '用户'@'IP地址' identified by 'password';
 
  //all privileges  除grant外的所有权限
  select          仅查权限
  select,insert   查和插入权限...
  usage                   无访问权限
  alter                   使用alter table
  alter routine           使用alter procedure和drop procedure
  create                  使用create table
  create routine          使用create procedure
  create temporary tables 使用create temporary tables
  create user             使用create user、drop user、rename user和revoke  all privileges
  create view             使用create view
  delete                  使用delete
  drop                    使用drop table
  execute                 使用call和存储过程
  file                    使用select into outfile 和 load data infile
  grant option            使用grant 和 revoke
  index                   使用index
  insert                  使用insert
  lock tables             使用lock table
  process                 使用show full processlist
  select                  使用select
  show databases          使用show databases
  show view               使用show view
  update                  使用update
  reload                  使用flush
  shutdown                使用mysqladmin shutdown(关闭MySQL)
  super                   ??使用change master、kill、logs、purge、master和set global。还允许mysqladmin????调试登陆
  replication client      服务器位置的访问
  replication slave       由复制从属使用

grant all on *.* to 'username'@'%' identified by '123456'; 
 

补充说明:

1. GRANT命令说明:
    priveleges(权限列表),可以是all priveleges, 表示所有权限,也可以是select、update等权限,多个权限的名词,相互之间用逗号分开。

    on用来指定权限针对哪些库和表。

    *.* 中前面的*号用来指定数据库名,后面的*号用来指定表名。

     to 表示将权限赋予某个用户, 如 testa@localhost表示testa用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是                  在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。

    identified by指定用户的登录密码,该项可以省略。

     WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。

        备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加一个select权限,然后又给用户添加一个insert权限,那么该用户就同时拥有了select和insert权限。

2.授权原则说明:

  权限控制主要是出于安全因素,因此需要遵循一下几个经验原则:

    a、只授予能满足需要的最小权限,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。

       b、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。

       c、初始化数据库的时候删除没有密码的用户。安装完数据库的时候会自动创建一些用户,这些用户默认没有密码。

     d、为每个用户设置满足密码复杂度的密码。

     e、定期清理不需要的用户。回收权限或者删除用户。

 6、刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 

7、回收权限

revoke privileges on database.tablename from 'username'@'host';
注意:privileges :用户的操作权限如:select,update,delete,insert等,若要授予所有权则使用"all"

8、修改用户名

 rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

9、修改密码

 set password for '用户名'@'IP地址' = Password('新密码');

如果是修改当前用户的密码则使用:SET PASSWORD = PASSWORD('新密码');

10、删除用户

 drop user '用户名'@'IP地址';

友情提示:每做完一次操作注意刷新

 flush privileges;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值