Myspl 数据库用户和权限管理

1. 用户管理

1.1 创建用户
# 创建完默认情况下不能本地登录,只能远程登录
create user 用户名 identified by 密码

# 创建用户并只能可以通过某个地址的客户端登录
create user 用户名@主机地址 identified by 密码

# 使用授权命令授权的时候创建新用户并授权
grant all privileges on xxxx.* to dddd@'%' identified by '654321';
1.2 授权
# 使用授权命令授权的时候创建新用户并授权
grant 权限类型 on 数据库.数据表 to 用户@主机地址 identified by 密码;

# 给已经存在的用户授权
grant 权限类型 on 数据库.数据表 to 已存在的用户名;

# 给用aaa在xxxx数据库中的所有表都授有select权限
grant select on xxxx.* to aaa;
# 对于有些权限的设置 需要加上host地址,这个地址一般和该用户在mysql.user表中的host字段的值相同
grant select on xxxx.* to aaa@'host地址';

# 给用aaa在xxxx数据库中的所有表都授有update和delete权限
grant update,delete on xxxx.* to aaa;

常用的权限类型:

权限类型说明
all privileges所有权限
all所有权限
select读取权限
delete删除权限
update更新权限
create创建权限
drop删除数据库、数据表权限

主机地址

主机类型含义
localhost只允许该用户在本地登录,不能远程登录
%允许在除本机之外的任何一台机器远程登录
192.168.52.32具体的IP表示只允许该用户从特定IP登录
1.3 撤销权限

基本格式:

revoke 权限类型 on 数据库.数据表 from 用户名;

例子:

#  撤销某一类权限
revoke update on xxxx.* from aaa;

# 一次性多个权限
revoke select,insert,delete on xxxx.* from aaa;

# 一次性撤销所有权限
revoke all  on xxxx.* from aaa;
revoke all privileges on xxxx.* from aaa;
1.4 刷新权限
flush privileges;

注意:权限更新后,如果之前已经连接到服务端的用户,并不会马上生效新权限更改。只有退出后重新登录才生效。

2. 附: MySQL权限类型

权限含义
usage连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
file拥有file权限才可以执行  select …into outfile和load data infile…操作,但是不要把file, process,  super权限授予管理员以外的账号,这样存在严重的安全隐患。
super这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE  MASTER,PURGE MASTER LOGS。
select必须有select的权限,才可以使用select  table
insert必须有insert的权限,才可以使用insert  into …… values….
update必须有update的权限,才可以使用update  table
delete必须有delete的权限,才可以使用delete  from ….where….(删除表中的记录)
alter必须有alter的权限,才可以使用alter  table
alter routine必须具有alter  routine的权限,才可以使用{alter | drop} {procedure|function}
create必须有create的权限,才可以使用create  table
drop必须有drop的权限,才可以删除库、表、索引、视图等
create routine必须具有create  routine的权限,才可以使用{create | alter
create temporary tables(注意这里是tables,不是table) 必须有create  temporary tables的权限,才可以使用create temporary tables.
create view必须有create  view的权限,才可以使用create view
create user要使用CREATE  USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
show database通过show  database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。对于root@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:
show view必须拥有show  view权限,才能执行show create view
index必须拥有index权限,才能执行[create  | drop] index
excute执行存在的Functions,Procedures
eventevent的使用频率较低建议使用root用户进行创建和维护。要使event起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1
lock tables必须拥有lock  tables权限,才可以使用lock tables
references有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。
reload必须拥有reload权限,才可以执行flush  [tables | logs | privileges]
replication client拥有此权限可以查询master  server、slave server状态。
replication slave拥有此权限可以查看从服务器,从主服务器读取二进制日志。
Shutdown关闭mysql权限
grant option拥有grant  option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)
process通过这个权限,用户可以执行SHOW  PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。
all privileges所有权限。with  grant option 可以连带授权
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值