本文实例,运行于 MySQL 5.0 及以上版本。

MySQL 赋予用户权限命令的简单格式可概括为:

grant

权限

on

数据库对象

to

用户

一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。

grant

select

on

testdb.

*

to

common_user@

'

%

'

grant

insert

on

testdb.

*

to

common_user@

'

%

'

grant

update

on

testdb.

*

to

common_user@

'

%

'

grant

delete

on

testdb.

*

to

common_user@

'

%

'

或者,用一条 MySQL 命令来替代:

grant

select

,

insert

,

update

,

delete

on

testdb.

*

to

common_user@

'

%

'

二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。

grant 创建、修改、删除 MySQL 数据表结构权限。

grant

create

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

grant

alter

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

grant

drop

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

grant 操作 MySQL 外键权限。

grant

references

on

testdb.

*

to

'

192.168.0.%

'

;

grant 操作 MySQL 临时表权限。

grant

create

temporary

tables

on

testdb.

*

to

'

192.168.0.%

'

;

grant 操作 MySQL 索引权限。

grant

index

on

testdb.

*

to

'

192.168.0.%

'

;

grant 操作 MySQL 视图、查看视图源代码 权限。

grant

create

view

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

grant

show

view

on

testdb.

*

to

'

192.168.0.%

'

;

grant 操作 MySQL 存储过程、函数 权限。

grant

create

routine

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

--

now, can show procedure status

grant

alter

routine

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

--

now, you can drop a procedure

grant

execute

on

testdb.

*

to

developer@

'

192.168.0.%

'

;

三、grant 普通 DBA 管理某个 MySQL 数据库的权限。

grant

all

privileges

on

testdb

to

dba@

'

localhost

'

其中,关键字 “privileges” 可以省略。

四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。

grant

all

on

*

.

*

to

dba@

'

localhost

'

五、MySQL grant 权限,分别可以作用在多个层次上。

1. grant 作用在整个 MySQL 服务器上:

grant

select

on

*

.

*

to

dba

@localhost

;

--

dba 可以查询 MySQL 中所有数据库中的表。

grant

all

on

*

.

*

to

dba

@localhost

;

--

dba 可以管理 MySQL 中的所有数据库

2. grant 作用在单个数据库上:

grant

select

on

testdb.

*

to

dba

@localhost

;

--

dba 可以查询 testdb 中的表。

3. grant 作用在单个数据表上:

grant

select

,

insert

,

update

,

delete

on

testdb.orders

to

dba

@localhost

;

这里在给一个用户授权多张表时,可以多次执行以上语句。例如:

grant

select

(

user_id

,username)

on

smp.users

to

mo_user@

'

%

'

identified

by

'

123345

'

;

grant

select

on

smp.mo_sms

to

mo_user@

'

%

'

identified

by

'

123345

'

;

4. grant 作用在表中的列上:

grant

select

(id, se, rank)

on

testdb.apache_log

to

dba

@localhost

;

5. grant 作用在存储过程、函数上:

grant

execute

on

procedure

testdb.pr_add

to

'

dba

'

@

'

localhost

'

grant

execute

on

function

testdb.fn_add

to

'

dba

'

@

'

localhost

'

六、查看 MySQL 用户权限

查看当前用户(自己)权限:

show grants;

查看其他 MySQL 用户权限:

show grants

for

dba

@localhost

;

七、撤销已经赋予给 MySQL 用户权限的权限。

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant

all

on

*

.

*

to

dba

@localhost

;

revoke

all

on

*

.

*

from

dba

@localhost

;

八、MySQL grant、revoke 用户权限注意事项

1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

grant

select

on

testdb.

*

to

dba

@localhost

with

grant

option

;

这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。

*************************************************************************************************

遇到 SELECT command denied to user '用户名'@'主机名' for table '表名' 这种错误,解决方法是需要把吧后面的表名授权,即是要你授权核心数据库也要。

我遇到的是SELECT command denied to user 'my'@'%' for table 'proc',是调用存储过程的时候出现,原以为只要把指定的数据库授权就行了,什么存储过程、函数等都不用再管了,谁知道也要把数据库mysql的proc表授权

*************************************************************************************************

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

mysql revoke from_Mysql grant to (revoke from)相关推荐

  1. mysql revoke with grant option_mysql_DCL_grant/revoke

    授权就是为某个用户赋予某些权限.例如,可以为新建的用户赋予查询所 有数据库和表的权限.合理的授权能够保证数据库的安全.不合理的授权会使数 据库存在安全隐患. MySQL中使用GRANT关键字来为用户设 ...

  2. 数据库-grant和revoke

    SQL的数据控制功能:GRANT和REVOKE 使用grant和revoke注意要点: 1.可以为不存在的数据库授权. 2.如果grant命令标识的用户不存在,它将被创建. 3.如果创建一个用户而没有 ...

  3. mysql revoke 无效_MySQL的grant,revoke使用

    grantcreateontestdb.*todeveloper@'192.168.0.%';grantalterontestdb.*todeveloper@'192.168.0.%';grantdr ...

  4. revoke mysql_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  5. mysql 权限命令 revoke_MySQL权限操作:Grant、Revoke

    :参考http://www.cnblogs.com/subsir/articles/2568361.html by 市集 usage select create create routine crea ...

  6. mysql revoke数据库_MySQL ------ 管理用户对数据库的访问控制(GRANT 与 REVOKE)(二十九)...

    数据库服务器通常包含着关键的数据,所以为了确保这些数据的安全和完整需要要利用访问控制. MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少(即用户不能对过多的数据 ...

  7. MySQL之grant、revoke用法

        grant 权限 on 数据库名.表名 用户@'登录主机' identified by "用户密码"; Note:     登陆主机.密码必须加引号,单双皆可. 1.gra ...

  8. mysql revoke 授权_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  9. android通过用户名密码访问服务器获取信息_MySQL ------ 管理用户对数据库的访问控制(GRANT 与 REVOKE)(二十九)...

    数据库服务器通常包含着关键的数据,所以为了确保这些数据的安全和完整需要要利用访问控制. MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少(即用户不能对过多的数据 ...

最新文章

  1. 【算法】Logistic regression (逻辑回归) 概述
  2. 移动端picker插件
  3. C++实现对汉字的完美支持
  4. 基于 Kubernetes 实践弹性的 CI/CD 系统
  5. asp.net WebForm页面间传值方法
  6. Ubuntu 通过Deb 安装 MySQL 5.5 [转载]
  7. Java笔记(韩顺平Java基础1-2章)
  8. CS231n-assignment1详解
  9. c语言创意作业蜂鸣器,蜂鸣器c语言程序_c语言编写蜂鸣器发声
  10. emmx文件用什么软件打开电脑_fbx文件是什么_电脑fbx文件用什么软件打开
  11. java post 提交数据_java中使用post提交数据
  12. 赵小楼《天道》《遥远的救世主》深度解析(144)问题本身就是答案。需要强调的东西不是本来的那个东西。
  13. Navigator的教程
  14. CSDN博文周刊第一期 | 2018年总结:向死而生,为爱而活——忆编程青椒的戎马岁月
  15. 1024程序员节的由来?
  16. Monkey的11种事件
  17. 凤凰系统的服务器搭建,凤凰系统装在云服务器
  18. 5G网络优化工程如何完美高效地准备一场面试?
  19. 《浪矢解忧杂货店》——品味最真实的感动
  20. 新员工培训环境准备中,碰见的两个ORA-600错误

热门文章

  1. day-06 is ==小数据池编码解码
  2. css 超出行显示点点点
  3. 纯干货版阿里巴巴国际站入门攻略
  4. linux关闭8080端口命令,linux iptables开放/关闭端口命令
  5. web安全(入门篇)
  6. 读书笔记-刷新:重新发现商业与未来
  7. class 原生js获取父元素_原生js获取class
  8. MySQL中视图增加自增序号
  9. 2021-11-01 十三、集合
  10. python如何计算Content-MD5并获取文件的Content-MD5值