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

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

相关文章推荐

C++笔试面试常考知识点汇总(三)

101:对引用类型执行sizeof运算得到被引用对象所占空间的大小;对数组执行sizeof得到整个数组所占空间的大小。sizeof运算不会把数组转换成指针处理;对string对象或者vector对象执...

不会写的sql

如何关联数据字典表中的两个关键字段确定唯一性 select           t_dict_data20.id_ dictData20_id_,        t_dict_data2...

Extjs初学入门,详细panel、form、grid等介绍

layout 1.面板     (1)类结构         Ext.Base         Ext.AbstractComponent...

arrayList与hashmap的区别

http://blog.csdn.net/qiulongtianshi/article/details/8146717 ArrayList和HashMap是异步的,Vector和Hash...

MySQL的MVCC

MySQL的MVCC

saltstack

saltstack

csdn如何转载别人的文章

转载地址:http://blog.csdn.net/jiangping_zhu/article/details/18044109 1、找到要转载的文章,用chrome浏览器打开,右键选择审查元...
  • dlhlSC
  • dlhlSC
  • 2016-08-19 16:51
  • 4267

ROS 教程之 navigation : 用 move_base 控制自己的机器人(1)

前言:     相信大家在用《ROS by example》学习ROS的过程中,基本上都是使用书本中的例程,在终端输入几行别人已经写好的代码,看看仿真效果。可是这样一来,笔者在跟着书本初略过了一遍后,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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