• MySQL基础之第15章 MySQL用户管理


    15.2、账户管理

    15.2.1、登录和退出MySQL服务器

    mysql –hhostname|hostIP –P port –u username –p[password] databaseName –e “SQL语句”

    -h               主机名或ip
    -P               port[3306]
    -u               username
    -p               -p[password]                注意,之间没有空格
    -e               执行SQL语句                SQL用双引号括起

    可以用此语句配合操作系统定时任务,达到自动处理表数据的功能,如定时将某表中过期的数据删除。

    15.2.2、新建立普通用户

    1、用CREATE USER语句新建

    CREATE USER user [IDENTIFIED BY [PASSWORD]’password’]
         [,user [IDENTIFIED BY [PASSWORD]’password’]]... 

    2、用INSERT语句来新建普通用户

    INSERT INTOmysql.user(host,user,password,ssl_cipher,x509_issuer,x509_subject)
    VALUES (‘localhost’,’test2’,PASSWORD(‘test2’),’’,’’,’’);
    FLUSH PRIVELEGES; 

    3、用GRANT语句来新建普通用户

    GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD]’password
    [,user[IDENTIFIED BY [PASSWORD]’password’]]... 

    15.2.3、删除普通用户

    1、用DROP USER语句来删除普通用户

      DROP USER user [,user]…;

    例:drop user ‘test’@’localhost’;

    2、用DELETE语句来删除普通用户

    DELETE FROM mysql.user WHERE user=’username’ and host=’hostname’;
    FLUSH PRIVILEGES;

    15.2.4、root用户修改自己的密码

    1、使用mysqladmin命令来修改root用户的密码

    mysqladmin –u username –p password “new_password”;

    2、修改user表

    UPDATE mysql.user SET password=PASSWORD(“new_password”) WHERE user=’root’and host=’’;
    FLUSH PRIVILEGES; 

    3、使用SET语句来修改root用户的密码

    SET PASSWORD=PASSWORD(“new_password”);

    15.2.5、root用户修改普通用户密码

    1、使用mysqladmin命令

      不适用,mysqladmin只能修改root 用户密码

    2、修改user表

    UPDATE mysql.user SET password=PASSWORD(“new_password”) WHERE user=’’ andhost=’’;
    FLUSH PRIVILEGES;

    3、使用SET语句来修改普通用户的密码

      SET PASSWORD FOR ‘user’@’localhost’=PASSWORD(“new_password”);

    4、用GRANT语句来修改普通用户的密码

    GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD]’password
    [,user[IDENTIFIED BY [PASSWORD]’password’]]...

    15.2.6、普通用户修改密码

    SET PASSWORD=PASSWORD(“new_password”);

    15.2.7、root用户密码丢失的解决办法

    1、使用—skip-grant-tables选项来启动MySQL服务

    >mysqld –skip-grant-tables

    #/etc/init.d/mysql start –mysqld –skip-grant-tables

    2、登录root,设置新密码

    mysql –u root
    update mysql.user set password=password(“new_password”) where user=’root’and host=’localhost’; 

    3、加载权限表

      fush privileges;

    15.3、权限管理

    15.3.1、MySQL的各种权限

    create, select, update, delete

    all [privileges]               指所有权限

    15.3.2、授权

    GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
        ON [object_type] {tbl_name | *| *.* | db_name.*}
        TO user [IDENTIFIED BY[PASSWORD] 'password']
            [, user [IDENTIFIED BY[PASSWORD] 'password']] ...
        [REQUIRE
            NONE |
            [{SSL| X509}]
            [CIPHER 'cipher' [AND]]
            [ISSUER 'issuer' [AND]]
            [SUBJECT 'subject']]
        [WITH with_option [with_option]...]


    object_type =
        TABLE
      | FUNCTION
      | PROCEDURE

    with_option =
        GRANT OPTION
      | MAX_QUERIES_PER_HOUR count
      | MAX_UPDATES_PER_HOUR count
      | MAX_CONNECTIONS_PER_HOUR count
      | MAX_USER_CONNECTIONS count

    grant select, insert, update, delete on testdb.* tocommon_user@'%'

    database.table             *.*所有库的所有表
    user                     ‘user’@’host’

    15.3.3、收回权限

    REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
        ON [object_type] {tbl_name | *| *.* | db_name.*}
        FROM user [, user] ...

    REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

  • 相关阅读:
    汇编学习笔记(一)
    外部中断的资料
    喇叭的落幕
    红外模块
    SQL2005连接不上解决
    DataGrid中动态添加列,使用CheckBox选择行
    List和ObservableCollection的相互转化
    使用C#发送邮件
    C#委托与事件 简明
    Linq GroupBy 求和
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/3620939.html
Copyright © 2020-2023  润新知