MySQL 数据库权限简单管理

mysql 数据库授权
授权命令GRANT 语句的语法如下:
GRANT privileges (columns)
ON what
TO user IDENTIFIEDBY “password”
WITH GRANT OPTION ;
FLUSH PRIVILEGES;

一、普通用户授权

查询、插入、更新、删除:

GRANT select ON *.* to username@'%';
GRANT insert ON *.* to username@'%';
GRANT update ON *.* to username@'%';
GRANT delete ON *.* to username@'%';

用一条命令来替代:

GRANT select, insert, update, delete ON testdb.* to username@'%';

管理某个MySQL数据库权限:

GRANT all privileges ON testdb to username@'localhost';
FLUSH PRIVILEGES; 

二、高级DBA管理MySQL中所有数据库的权限:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
FLUSH PRIVILEGES; 

三、查看 MySQL 用户权限

查看当前用户权限:

show grants;

查看其他用户权限:

show grants for username@localhost;

四、撤销用户权限:

revoke all ON *.* from username@localhost;
FLUSH PRIVILEGES; 

五、实例操作

1.增加用户test1

密码为passwd, 让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作。

GRANT select,insert,update,delete ON mydb.* to test2@localhost identified by "passwd"; 
FLUSH PRIVILEGES; 
2.增加用户test2

密码为passwd,可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

GRANT select,insert,update,delete ON *.* to test1@'%' Identified by "passwd"; 
FLUSH PRIVILEGES; 
3.增加用户test3

密码为passwd,仅在172.27.11.222主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

GRANT select,insert,update,delete ON *.* to test1@'172.27.11.222' Identified by "passwd"; 
FLUSH PRIVILEGES; 

权限说明:

1.select、insert、update和delete权限允许你在一个数据库现有的表上实施操作,是基本权限
2.alter权限允许你使用ALTER TABLE
3.create和drop权限允许你创建新的数据库和表,或抛弃(删除)现存的数据库和表,如果将mysql数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL存取权限的数据库!
4.grant权限允许你把你自己拥有的那些权限授给其他的用户。

例如:
用户能读取和修改已有表的内容,不允许创建新表或删除表,可按如下授权:
GRANT SELECT,INSERT,DELETE,UPDATE ON test_db.* TO ‘user’@’%’ IDENTIFIEDBY “pass”

mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。

授权表说明:

user表:
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。

db表:
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。

host表:
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。

tables_priv表:
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。

columns_priv表:
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曹宇飞丶

您的鼓励是我创作的最大动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值