mysql用户权限配置

1、先使用能登录mysql的账号登录mysql

2、创建用户

语法:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

参数说明:

username:  用户名;

host:指定在哪个主机上可以登录,本机可用localhost,%通配符, 所有远程主机; '192.168.0.%'该网段下的所有主机。

password:用户登录密码;

3、修改用户

-- 修改当前用户 可远程登录的主机
update mysql.user set host='host' where user='username';

-- 
update mysql.db set host='修改后的IP' where user='要修改的账号';

-- 
update mysql.tables_priv set host='修改后的IP' where user='要修改的账号';

-- 
flush privileges;

4、给账号赋予权限语法如下:

create user 'typt'@'%' identified by '123456'; -- 创建用户
GRANT all privileges ON  typt.* TO 'typt'@'%'; -- 将所有权限赋予给用户
FLUSH PRIVILEGES; -- 然后刷新权限使更改生效

5、创建账号时并赋予权限

语法:

grant all privileges on *.* to '用户名'@'登录IP或者域名' identified by '登录密码' with grant option;

  • all privileges: 表示授权用户全部权限,当然你也可以指定赋予具体权限,比如SELECT、UPDATE、CREATE、DROP等。
  • on:表示这些权限可以作用于哪些数据库和哪些表,*.*表示作用于所有数据库和所有表,格式为数据库名.表名。比如有一个test库,想让yxc用户拥有查看test库所有表的权限,那么可以这样写:grant SELECT on test.* to 'yxc'@'%' identified by '登录密码';
  • to:将权限授予哪个用户。格式:'用户名'@'登录IP或域名'。这里登录IP或域名后面如果是’localhost’表示该用户只能在本地主机上进行访问,如果是通配符’%'代表允许从任何主机登录。
  • IDENTIFIED by:指定用户的登录密码。
  • with grant option:表示允许用户将自己的权限授权给其它用户。

部分权限含义如下:

权限含义
ALL [PRIVILEGES]设置除GRANT OPTION之外的所有简单权限
ALTER允许使用ALTER TABLE
ALTER ROUTINE更改或取消已存储的子程序
CREATE允许使用CREATE TABLE
CREATE USER允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。
CREATE VIEW允许使用CREATE VIEW
DELETE允许使用DELETE
DROP允许使用DROP TABLE
INDEX允许使用CREATE INDEX和DROP INDEX
INSERT允许使用INSERT
SELECT允许使用SELECT
SHOW DATABASESSHOW DATABASES显示所有数据库
SHOW VIEW允许使用SHOW CREATE VIEW
SHUTDOWN允许使用SHUTDOWN关闭数据库服务器
UPDATE允许使用UPDATE
GRANT OPTION允许授予权限

 示例:创建用户user1,设置密码123456,并赋予test数据库所有权限,并允许将自己的权限授权给其它用户。

grant all privileges on test.* to 'user1'@'%' identified by '1234567' with grant option;
FLUSH PRIVILEGES; 

先创建用户,再授权:

create user 'user1'@'%' identified by '123456'; -- 创建用户
GRANT all privileges ON  test.* TO 'user1'@'%'; -- 将所有权限赋予给用户
FLUSH PRIVILEGES; -- 刷新权限使更改生效

其他语法:

# 查看用户拥有的权限
SHOW GRANTS FOR 'user1'@'%';

# 删除用户
DROP USER 'user1'@'%'; -- 删除用户user1,用户名(User)和主机名(Host)构成
FLUSH PRIVILEGES; -- 刷新权限

# 禁用用户
ALTER USER 'user1'@'%' ACCOUNT lock; -- 禁用账号user1
FLUSH PRIVILEGES; -- 刷新权限

# 解除禁用
ALTER USER 'user1'@'%' ACCOUNT UNLOCK; -- 解除禁用账号user1
FLUSH PRIVILEGES; -- 刷新权限

# 重命名用户名
-- 语法:
rename user '用户名'@'IP或者域名' to '新用户名'@'IP或者域名';
-- eg:将user1用户重命名为user2
rename user 'user1'@'%' to 'user2'@'%';

# 修改用户密码 
set password for '用户名'@'IP或者域名'=password('新密码')

# 撤销权限REVOKE
REVOKE SELECT ON test.* FROM 'user1'@'%'; -- 撤销user1在数据库test的权限

# 查看密码过期时间
show variables like 'default_password_lifetime';-- 0表示永不过期
# 设置密码过期时间为180天
set global default_password_lifetime=180;
# 强制用户密码过期
ALTER USER 'user1'@'%' PASSWORD EXPIRE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值