mysql用户创建,及授权


1、首先查看系统中所有的用户:
   select host,user from mysql.user;


2、删除系统的多余帐号语法drop user"user"@"主机域" 注意引号,可以是单或双引号;
   范例: drop user ‘‘@‘moban2‘
   #如果为空直接为空即可;
   #如果drop删除不了(一般是特殊字符或大写),可以用下面的方式删除:
   范例:delete from mysql.user where user=‘root‘ and host=‘127.0.0.0.1‘;

3、创建用户的时候最好首先通过help查看grant命令帮助:
    CREATE USER ‘jeffrey‘@‘localhost‘ IDENTIFIED BY ‘mypass‘;
    GRANT ALL ON db1.* TO ‘jeffrey‘@‘localhost‘;
    GRANT SELECT ON db2.invoice TO ‘jeffrey‘@‘localhost‘;
    GRANT USAGE ON *.* TO ‘jeffrey‘@‘localhost‘ WITH MAX_QUERIES_PER_HOUR 90;

4、运维人员常用的创建方法,使用grant命令创建用户的时,进行权限授权:
    范例:grant all privileges  on db1.* to user_name@localhost identified by "password";
    # grant    all privileges on db1.*  to username@localhost  identified     by‘passwd‘       授权命令  对应权限(all所有权限)      目标:库和表用户名和客户端主机    用户密码    


5、授权完毕后要刷新权限:

    flush privileges;


6、查看创建的用户:

    select host,user from mysql.user;


7、查看创建用户的权限: show grants for user_name@localhost;
   #USAGE 表示用户只可以登录,没有其它权限,操作的时候显示Access denied; 



     或者:
     查看帮助:help create user
               CREATE USER ‘jeffrey‘@‘localhost‘
               IDENTIFIED WITH my_auth_plugin;
     先创建用户

               create user  username@localhost identified by "password";
      查看用户权限:

               show grants for username@localhost;
     在授权:

               grant all on dbname.* to username@localhost;
      查看权限:

               show grants for username@localhost;




8、授权局域网内主机远程连接数据库,常见的使用%匹配方法:
   范例: grant all on   *.* to  username_2@‘10.10.36.%‘ identified by "123456";
   刷新权限:flush privileges;
   登录使用-h指定主机,-P指定端口

   范例:mysql -u  username_2 -p -h 10.10.36.170



确定mysql 可以授权的权限,如果不知道可以这样:
⑴帮助查看:help revoke (权限收回)

    REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
⑵权限查看:show grants for username@localhost;
⑶收回插入权限:revoke insert  on  *.* from ‘user_name‘@‘localhost‘;
  #注意此处指定数据库
⑷登录数据库后权限查看:show grants for username@localhost;
⑸退出数据库后: mysql -uroot -p123456 -e "show grants for "username"@"localhost";" | grep -i grant  | tail -1|tr ‘,‘ ‘\n‘ >all.privileges
以下为数据库中的权限:
SELECT 查询\INSERT 插入 \UPDATE 更新\DELETE 删除 \CREATE 创建库和表\DROP    删除库和表\INDEX    索引\ALTER    修改 \CREATE TEMPORARY TABLES 创建临时表\ LOCK TABLES    锁表\ EXECUTE    执行\ CREATE VIEW    创建视图\ SHOW VIEW    显示视图\ CREATE ROUTINE 创建存储过程\ALTER ROUTINE    修改存储过程\ EVENT         事件\ TRIGGER     触发器
或者:select * from mysql.user\G;



9、针对博客、cms 等产品安装期间要采用最下话原则 :除了select,insert,update,delete4个权

   限外,还需要create,drop等危险权限
   范例:grant select,insert,update,delete,create,drop on blog.* to blog@‘10.10.36.%‘

    identified by "password";


10、生产数据库后收回权限(最好评估):
    范例:revoke create,drop on blog.*  from blog@‘10.10.36.%‘;


主从数据库权限设定慢慢在补。

本文出自 “一如既往” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。