MySQL创建新用户并赋予指定数据库权限

博主介绍:
计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟练掌握mysql、oracle、sqlserver等主流数据库,能够为大家提供全方位的技术支持和交流。
工作五年,具有丰富的项目经验和开发技能。提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。


创建账号时并赋予权限语法如下:

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允许授予权限

eg:创建用户yxc,设置密码yxc@224!707,并赋予test数据库所有权限,并允许将自己的权限授权给其它用户。

grant all privileges on test.* to 'yxc'@'%' identified by 'yxc@224!707' with grant option;

如果有些MySQL的数据库版本不允许在创建用户时就赋予权限,那么需要将创建和权限赋予分为两步:

create user 'yxc'@'%' identified by 'yxc@224!707'; -- 创建用户
GRANT all privileges ON  test.* TO 'yxc'@'%'; -- 将所有权限赋予给用户

然后刷新权限使更改生效。

FLUSH PRIVILEGES; 

其他语法:

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

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

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

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

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

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

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

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


更多技术干货,请持续关注程序员大佬超。
原创不易,转载请务必注明出处。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大佬超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值