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