阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL用户管理

495次阅读
没有评论

共计 2173 个字符,预计需要花费 6 分钟才能阅读完成。

MySQL 之用户管理

创建用户

create user username@host;      5.7.17 不允许
create user username@host identified by 'password';
@'%'
@ip
@'network'

说明:用户的信息保存在 mysql 数据库中的 user 表中,验证用户是否创建成功如下:

select user,host,password from mysql.user;

用户权限

权限分类

USAGE                                             无权限, 只有登录数据库, 只可以使用 test 或 test_* 数据库
ALL                                               所有权限
select/update/delete/super/slave/reload           指定的权限
with grant option                                 允许把自己的权限授予其它用户或者从其他用户收回自己的权限 

作用范围

*.*                                     全库、全表(mysql.user)mysql.*                                  mysql 库下所有表(某库中的所有表)(mysql.db)
mysql.user                               mysql 库中 user 表(单表)(mysql.table_priv)
mysql.user.host                          mysql 库中 user 表的 host 列 (mysql.columns_priv)

主机登录权限

user@localhost                                    表示 user 只能在本地通过 socket 登录服务器
user@192.168.0.1                                  表示 user 用户只能在 192.168.0.1 登录数据库服务器
user@192.168.0.0/255.555.255.0                    指定某个子网的主机可以登录数据库
user@%                                            表示 user 用户能在所有的机器上登录数据库服务器 

用户授权

show grants; 查看用户权限
grant 权限 on 库. 表 to 用户 @主机
grant 权限 (列 1, 列 2,...) on 库. 表 to 用户 @主机

mysql> grant select on db01.* to 'jack'@'10.1.1.0/255.255.255.0';
mysql> flush privileges;

mysql> grant update(name,math) on db01.t2 to 'jack'@'10.1.1.0/255.255.255.0';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;

mysql> grant all on *.* to 'zhang'@'10.1.1.254' identified by '123'
mysql> flush privileges;
注意: 从 MySQL
5.7.6 开始,不赞成使用 grant 修改密码。使用 ALTER USER 来代替。ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; ALTER USER USER() IDENTIFIED BY 'mypass'; 如果当前连接是匿名用户可以用该语句修改密码

权限的保存位置

mysql.user              所有 mysql 用户的账号和密码,以及对用户对全库全表权限(*.*)mysql.db                非 mysql 库的授权都保存在此 (db.*)
mysql.table_priv        某库某表的授权 (db.table)
mysql.columns_priv      某库某表某列的授权 (db.table.col1)
mysql.procs_priv        某库存储过程的授权 

回收权限:revoke

mysql> revoke update,select on mysql.user from stu6@localhost;    -- 撤消指定的权限
mysql> revoke all privileges,grant option from stu4@'%';       -- 撤消所有的权限 

删除用户

mysql> drop user user01@'localhost';                              删除用户
mysql> select user from mysql.user where user='user01';            验证用户是否删除成功
mysql> drop user user;                                  默认删除该用户从任意主机登陆
mysql> rename user u01@'instructor.example.com' to u001@'localhost';  重命名用户名
mysql> show grants;                                                查看用户权限
mysql> show grants for user02@'%';                              查看指定用户的权限 
mysql> drop user ''@'rhel6.example.com';                        删除一个匿名用户
mysql> delete from mysql.user where user='';                    删除 mysql 中的匿名用户
mysql> delete from mysql.user where user='root' and host='::1';
mysql> flush privileges;

注意:如果 tcp/ip 登录,服务器端口不是默认 3306,则需要加端口号
问题:可不可以给一个新的用户授权?更改 user02 在所有机器上都能登录数据库.
mysql> update mysql.user set host='%' where user='user02'; 
mysql> flush privileges;

 

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-28发表,共计2173字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中