MySQL 数据库权限简单管理

原创 2017年08月29日 17:35:03

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表指定列级权限。这里指定的权限适用于一个表的特定列。

版权声明:本文为博主原创文章,未经博主允许不得转载。

程序员喝酒解释专业术语,笑死我了!

如果你的女朋友,还不怎么理解IT行业术语!来看看这个超强段子,通俗又易懂。 大家喝的是啤酒。这时你入座了。 你给自己倒了杯可乐,这叫低配置。 你给自已倒了杯啤酒,这叫标准...

毕业设计任务书

    2006级毕业设计任务书               专业名称: 数控技术         指导老师:                  班级名称:                  教 研 ...

JDBC 连接到 Mysql 数据库简单例子

  • 2014年06月27日 11:21
  • 895KB
  • 下载

小型餐饮管理系统(c++/win32 SDK/MYSQL 数据库)

坚持了20个晚上的餐饮系统(这个工程的设计上就耗费了我一个星期时间,主要是数据库的设计),基本上完成了(关于库存管理的功能没有去做,因为最近很忙),本系统模仿网上下载的“店小二餐饮管理系统”模型制作,...

mysql 数据库管理中的安全问题(一)

从网上看到一些帖子,面试者被问到如何认识mysql数据库的安全问题。很多安全问题都是由于对账号管理不妥当造成的。   1 删除匿名账号            在mysql版本中,安装完mys...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL 数据库权限简单管理
举报原因:
原因补充:

(最多只允许输入30个字)