mysql数据库分配、取消权限

工作中,有时候会遇到分享本地数据库给同事使用的情况。下面是可能用到的一些操作。相互借鉴。

分配用户权限

格式

分配用户权限时,可以控制用户对数据的增删改查等,也可以控制用户只可以查看数据库中的具体表

GRANT ALL PRIVILEGES ON database.table TO user@ip IDENTIFIED BY 'password';

eg:

GRANT 
    SELECT,
    INSERT,
    UPDATE,
    DELETE,
    CREATE,
    DROP 
    ON database1.investor TO ck@localhost IDENTIFIED BY '000000';

此例子表示,分配给ck(这个用户可以已经创建,也可以未创建)用户在本地(localhost)的database1数据库中investor表拥有SELECT、INSERT、UPDATE、DELETE、CREATE、DROP 这几个操作权限;没有其他表的其他任何权限。连接数据库的密码是:000000
当然更多的时候我们还是分配足够的权限给他人使用。此时可以使用如下语句:

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '123456'

此语句表示,分配所有权限给root这个用户在本地的所有数据库的所有表的所有权限。连接数据库的密码是:123456

取消分配权限

格式

取消用户权限时,可以控制用户对数据的增删改查等,也可以控制用户只可以查看数据库中的具体表

Revoke privileges (columns) on what from user ;

eg:

REVOKE
    SELECT,
    INSERT,
    UPDATE,
    DELETE,
    CREATE,
    DROP 
    ON database1.investor from ck@localhost;

此例子与上述分配权限例子一致,只是这边是取消权限。
取消所有数据库的所有权限时:

Revoke all on *.* from ck@localhost;

取消本地用户ck在所有数据库的所有权限。
取消用户权限后,访问会出现如图提示:
无访问权限

删除数据库用户

格式

Delete from user where user = "user_name" and host = "host_name" ;

eg:

DELETE from mysql.`user` WHERE `User`='ck' AND `Host` = 'localhost';
FLUSH PRIVILEGES;

这边要说明一下的是,格式中user在mysql中表现形式是:mysql.user
此语句表示,删除用户ck在本地的访问权限(用户ck可能有三个ip使用,这样只是控制某一个ip的权限)。
FLUSH PRIVILEGES是告诉数据库服务,刷新权限,再次请求时,需要重新拉去权限。
删除所有用户这个还是不教了,怕你手快,怕你骂人。
删除用户后,访问会出现如图提示:
无用户
查看所有用户:

SELECT * from mysql.`user`;

可通过查询的语句,知道某一用户的权限。
查看所有用户

参考文章:http://www.2cto.com/database/201309/242823.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值