[MySQL & Python] 09. 账户与授权管理
用户信息存放在mysql库的user表中。
user:用户名
authentication_string:密码
host:允许用户连接数据库的IP地址。localhost等于只允许本地连接。
mysql> select user, authentication_string, host from mysql.user;
+---------------+-------------------------------------------+-----------+
| user | authentication_string | host |
+---------------+-------------------------------------------+-----------+
| root | *932E3650DE19D2003223785C8DA15555E69A3BDB | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost |
+---------------+-------------------------------------------+-----------+
创建、更改和删除用户
-
创建与删除用户
create user 用户名@连接IP地址 identified by 密码
drop user 用户名@连接IP地址
用户名: 可以使用 ' ' 引起来,也可以不用,建议使用。
连接IP地址可以是: 127.0.0.1 / '10.138.%.%' 或者 '%' 。使用%的时候,需要将IP地址使用' ' 括起来。
-- 创建用户
mysql> create user 'leozhang'@'%' identified by 'root123';
Query OK, 0 rows affected (0.00 sec)
-- 删除用户
mysql> drop user 'leozhang'@'%';
Query OK, 0 rows affected (0.00 sec)
-
更改用户
rename 用户@IP to 新用户@新IP
mysql> rename user 'lzhang'@'10.138.1.1' to 'leozhang'@'10.138.121.1'
-
修改密码
set password for 用户名@IP地址 = Password(新密码)
mysql> set password for 'leozhang' = password('leozhang');
授权管理
-
分配权限
grant 权限 on 数据库.表 to '用户'@IP地址;
数据库.表 可以是:
数据库名.表名
数据库.*
数据库名.存储过程名
*.*
flush privileges ; 将权限读入内存来立即生效
-- 给予所有库的所有表的所有权限
mysql> grant all privileges on *.* to 'leozhang'@'%';
-- 给予day26db库中所有表的所有权限
mysql> grant all privileges on day26db.* to 'leozhang'@'%';
-- 给予day26db库中info表的select, insert权限
mysql> grant select, insert on day26db.info to 'leozhang'@'%';
-- 立即生效权限的更改
mysql> flush privileges;
-
查看权限
show grants for 用户名@IP地址;
mysql> show grants for 'leozhang'@'%';
+------------------------------------------------------------+
| Grants for leozhang@% |
+------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'leozhang'@'%' |
| GRANT ALL PRIVILEGES ON `day26db`.* TO 'leozhang'@'%' |
| GRANT SELECT, INSERT ON `day26db`.`info` TO 'leozhang'@'%' |
+------------------------------------------------------------+
-
取消权限
revoke 权限 on 数据库.表 from 用户名@IP地址 ;
mysql> revoke all privileges on day26db.* from 'leozhang'@'%';
posted on 2022-04-06 22:34 LeoZhangJing 阅读(75) 评论(0) 编辑 收藏 举报