MySQL添加用户、删除用户与授权

2018/07 作者:ihunter 0 0

grant all privileges on zabbix.* to ihunter@'%' identified by '***';      # 增加授权
revoke all privileges on zabbix.* from ihunter@'%' identified by '***';   # 取消授权
SET PASSWORD FOR 'ihunter'@'%' = PASSWORD("***");  # 修改密码

3、增加用户:
(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符) 
  格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
 
   第一种:
 增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令: 
  grant select,insert,update,delete on *.* to test1@“%” Identified by “abc”;
 
  但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例第二种: 
  第一种:增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数
mysql> grant select,insert,update,delete on book.* to test2@localhost Identified by "abc";
 
  如果你不想test2有密码,可以再打一个命令将密码消掉。 
mysql> grant select,insert,update,delete on book.* to test2@localhost Identified by "";
 
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):
1.新建用户
  1.1 登录MYSQL:
  @>mysql -u root -p
  @>密码
  1.2 创建用户:
  mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
  这样就创建了一个名为:test 密码为:1234 的用户。
  注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
  1.3 然后登录一下:
  mysql>exit;
  @>mysql -u test -p
  @>输入密码
  mysql>登录成功
 
2.为用户授权
  授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
  2.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:
  @>mysql -u root -p
  @>密码
  2.2 首先为用户创建一个数据库(testDB):
  mysql>create database testDB;
  2.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
   mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
   mysql>flush privileges;//刷新系统权限表
  格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
  2.4 如果想指定部分权限给一用户,可以这样来写:
  mysql>grant select,update on testDB.* to test@localhost identified by '1234';
  mysql>flush privileges; //刷新系统权限表
  2.5 授权test用户拥有所有数据库的某些权限:   
  mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
     //test用户对所有数据库都有select,delete,update,create,drop 权限。
  //@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)
 //对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。
 
如何取消mysql授权并删除用户
如何查看授权的所有用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
revoke  all on *.* from 'root'@'192.168.0.197' ;
REVOKE语句只能取消用户的权限,而不可以删除用户。即使取消了所有的权限,用户仍然可以连接到服务器。要想彻底的删除用户,必须使用DELETE语句将该用户的记录从MySQL数据库中的user表中删除。该语句的语法格式如下: 
Delete from user where user = "user_name" and host = "host_name" ; 

3. 删除用户
   @>mysql -u root -p
  @>密码
   mysql>Delete FROM user Where User='test' and Host='localhost';
   mysql>flush privileges;
   mysql>drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@'%';
        >drop user 用户名@ localhost; 
 
4. 修改指定用户密码
    @>mysql -u root -p
    @>密码
    mysql>update mysql.user set password=password('新密码') where User="test" and Host="localhost";
    mysql>flush privileges;
 
5. 列出所有数据库
  mysql>show database;
 
6. 切换数据库
  mysql>use '数据库名';
 
7. 列出所有表
  mysql>show tables;
 
8. 显示数据表结构
  mysql>describe 表名;
 
9. 删除数据库和数据表
  mysql>drop database 数据库名;
  mysql>drop table 数据表名;


赞(2) 更多分享

上篇: mysql 忘记密码,1045错误修改方法
下篇: mongodb权限设置--用户名、密码、端口、启动和关闭