mysql 权限分配及创建新用户

前言


      本文主要是介绍mysql创建新用户命令及赋予权限等命令,为了便于理解,文中会给出相关示例。通常情况下,创建用户,修改mysql密码,授权,是需要有mysql里的root权限。


1.创建用户:

    //root用户登录 
    root@xxx jh>mysql -u root -p 123456 
    //创建用户fsxf
    mysql> insert into mysql.user(Host,User,Password)
             values("localhost","fsxf",password("666666")); 
    //刷新系统权限表 
    mysql>flush privileges; 
    //退出root用户然后用新用户登录一下。 
    mysql>exit; 
    root@xxx jh >mysql -u fsxf -p 666666 
    //登入成功
    mysql> 

2.修改用户密码:

    //root用户登录 
    root@xxx jh>mysql -u root -p 123456 
    //修改用户密码
    mysql>update mysql.user set password=password('123456') where
          User="fsxf" and Host="localhost"; 
    //刷新系统权限表 
    mysql>flush privileges;

3.删除用户:

    //root用户登录 
    root@xxx jh>mysql -u root -p 123456 
    //删除用户
    mysql>DELETE FROM user WHERE User="fsxf" and Host="localhost"; 
    //刷新系统权限表 
    mysql>flush privileges;

4.权限管理:

  • 数据库/数据表/数据列权限:
    Alter: 修改已存在的数据表(例如增加/删除列)和索引 
    Create: 建立新的数据库或数据表 
    Delete: 删除表的记录
    Drop: 删除数据表或数据库 
    INDEX: 建立或删除索引
    Insert: 增加表的记录
    Select: 显示/搜索表的记录
    Update: 修改表中已存在的记录
  • 特别的权限:
    ALL: 允许做任何事(和root一样) 
    USAGE: 只允许登录--其它什么也不允许做 
  • 管理权限命令:

privileges: 通常情况下,权限是指数据库/数据表/数据列和特别权限
obj: user将对obj拥有privileges权限。*.*意味着权限对所有数据库和数据表有效。dbname.*意味着dbname数据库中的所有数据表有效。 dbname.tblname意味着仅对名为dbname中tblname表有效。mysql还允许通过在privileges后面使用圆括号,指定user对obj中的指定数据列具有privileges权限。
user: 具有username@hostname模式,是指允许username在hostname机器上对obj具有privileges权限,其中可用%来匹配所有的hostname。
password: 用于指定user访问mysql的密码,可以不同于用户密码。
WITH GRANT OPTION: 用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。

    GRANT <privileges> ON <obj> TO <user> 
    [IDENTIFIED BY "<password>"] [WITH GRANT OPTION];
  1. GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON dbname.* TO username@% IDENTIFIED BY "password";flush privileges;
  2. GRANT ALL ON *.* TO username@% IDENTIFIED BY "password";flush privileges;
  3. GRANT UPDATE(name,email) ON dbname.tblname TO username@% IDENTIFIED BY "password";flush privileges;
  • 查看mysql(show的大用途):
    1.show procedure status; 
    2.show grants for username;
    3.show grants for username@10.0.1.1;
    4.show create database dbname;
    5.show create table dbname.tblname;
    6.show create procedure procname;
    7.SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') 
       AS query FROM mysql.user;
    8.SELECT DISTINCT CONCAT('User: ',user,'@',host,';') AS query 
       FROM mysql.user;
    9. show processlist;
    10. show variables like '%quer%';
    11. show global status like '%Slow_que%';
    12. show profile;
    13. show variables like "%pro%";
posted @ 2015-07-31 16:49  繁衰萧复  阅读(338)  评论(0)    收藏  举报