01 - MySQL用戶及權限管理 | MySQL


 

# 1.用戶管理
| 用戶管理的特殊命令:
        創建用戶
                create usr '用戶名'@'IP地址' identified by '密碼';
        刪除用戶
                drop user '用戶名'@'IP地址';
        修改用戶
                rename user '用戶名'@'IP地址'; to '新用戶名'@'IP地址';;
        修改密碼
                set password for '用戶名'@'IP地址' = Password('新密碼')

# 2.權限管理
| 權限管理:
        默認,沒有權限        
        grant 權限 on 數據庫.表 to '用戶'@'IP地址'           ---- 授權
        revoke 權限 on 數據庫.表 from '用戶'@'IP地址'    ---- 取消權限
        show grants for '用戶'@'IP地址'                               ---- 查看權限
# 附:IP段支持通配符:%
# 例:192.168.36.%

# 3.設置其他遠程登錄root用戶權限
1.查看root用戶的host,默認只
    能被本機ip(127.0.0.1)登錄
    # select host, user from user where user='root';
2.更新root用戶信息,讓root用戶可以被任意主機IP登錄
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; 3.使修改生效
    # flush privileges;
4.其他主機即可遠程登錄到本機MySQL root用戶,
     -h 表示遠程登錄的目標主機ip
    # mysql -uroot -pmysql -h 192.168.xx.xxx
5.查看mysql系統表
    # select host, user from mysql.user;
1.新建普通用戶
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    或者:
    GRANT SELECT, UPDATE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
    或者:
    INSERT INTO user(Host, User, Password) VALUES('localhost', 'username', PASSWORD('password'));
    # 報錯:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

    # 查看執行結果
    SELECT Host, User, Select_priv, Update_priv FROM MySQL.user where user='username';
    或者: 
    SELECT Host, User, Password FROM user;

2.刪除用戶及權限
    DROP USER 'username'@'localhost';
    # 用戶對話關閉后才生效;
    或者:
    DELETE FROM MySQL.user WHERE host='localhost' and user='username';

3.root用戶修改自己的密碼
    mysqladmin -u username -h localhost -p password 'password';
    或者:
    UPDATE mysql.user set Password=PASSWORD('password') WHERE User='root' and Host='localhost';
    FLUSH PRIVILEGES;

4.root用戶修改普通用戶密碼
    SET PASSWORD FOR 'user'@'host'=PASSWORD('password');
    或者:
    UPDATE MySQL.user SET Password = PASSWORD('password') WHERE User='password' AND Host='hostname';

    FLUSH PRIVILEGES;

5.普通用戶修改自身密碼
    SET PASSWORD=PASSWORD('password');

6.root用戶密碼丟失的解決辦法 # windows下
    net stop MySQL
    mysql --skip-grant-tables
    mysql -u root
    > UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root' and Host='localhost';
    > FLUSH PRIVILEGES;  # 加載權限表

    # Linux
    mysqld_safe --skip-grant-tables user=mysql
    或者:
    /etc/init.d/mysql start-mysqld --skip-grant-tables
    > UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root' and Host='localhost';
    > FLUSH PRIVILEGES;  # 加載權限表

7.收回UPDATE權限 > REVOKE UPDATE ON *.* FROM 'username'@'localhost';

8.查看權限
    SHOW GRANTS FOR 'username'@'localhost';

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM