mysql权限管理

权限层级
1:全局层级
适用于服务器中的所有数据库,权限存储在mysql.user表中
grant all on *.*
revoke all on *.*

2:数据库层级 适用于一个数据库中的所有对象,权限存储在mysql.db和host表中
grant all on db_name.*
revoke all on db_name.*

3:表层级 使用于一个表中的所有列,权限存储在mysql.tables.priv表中
grant all on db_name.table_name
revoke all on db_name.table_name

4:列层级 使用于一个表中的单个列,权限存储在mysql.columns.priv表中

5:子程序层级 CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT权限适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级。而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中。

 

 

权限类型

select使用select语句查询表
insert使用insert语句向表中插入记录
update使用update语句更新记录
delete使用delete语句删除表中的记录
all[privileges]设置除grant option之外的所有简单权限
alter允许使用alter table修改表结构, 验证语句: alter table a.b modify id int;
create允许使用create table语句创建表。验证语句:create table a.b(id int);
create routine创建存储过程。
create temporary tables允许使用create temporary table。
create view允许使用create view。验证语句:CREATE VIEW b.v1 AS SELECT * FROM b.a;
create user允许使用create user, drop user, rename user和revoke all privileges。
drop允许使用drop table
execute允许用户运行存储过程。
file允许使用select...into outfile和load data infile。
index允许使用create index, drop index
lock tables允许对拥有select权限的表使用lock tables。
process允许使用show full processlist。
reload允许使用flush。验证语句:flush privileges。
replication client允许用户询问从属服务器或主服务器的地址
replication slave用于复制型从属服务器(从主服务器中读取二进制日志事件)
show databases允许使用show databases显示所有数据库
show view允许使用show create view
shutdown允许使用mysqladmin shutdown
grant option允许授予权限

 

 

 

#分配权限示例:
格式:grant <权限> on <数据库.表> to <用户名>@<访问位置> identified by '<密码>';

本机访问
grant all privileges on dbname.* to username@localhost identified by '1234';

 

172.19.12段ip访问
grant all privileges on dbname.* to username@172.19.12.% identified by '1234';

 

所有IP访问
grant all privileges on dbname.* to username@% identified by '1234';


给用户user1赋予在数据库db1上所有表的select, insert, delete, update权限
GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO user1@localhost;

 

删除用户user1在数据库db1上所有表上的select, insert, delete, update权限
REVOKE SELECT, INSERT, UPDATE, DELETE ON b.* FROM a@localhost;

 

/*分配普通用户权限*/
GRANT SELECT, INSERT, UPDATE, DELETE ON b.* TO a@localhost;

 

/*分配管理用户权限*/
GRANT ALL ON b.* TO b@localhost;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里为您提供一个MySQL权限管理的实例。 1. 创建用户并授权 首先,我们需要创建一个用户,并授予该用户可以操作某个数据库的权限。假设我们要创建一个名为 "test_user" 的用户,并授予该用户可以操作 "test_db" 数据库的权限,可以按照以下步骤操作: - 登录MySQL,并使用管理员账号进行操作: ``` mysql -u root -p ``` - 创建用户: ``` CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'password'; ``` 其中,'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL,'password'为该用户的密码。 - 授予权限: ``` GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost'; ``` 其中,'test_db.*'表示我们授予该用户可以操作 "test_db" 数据库中的所有表;'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 2. 查看用户权限 我们可以使用以下命令查看某个用户的权限: ``` SHOW GRANTS FOR 'test_user'@'localhost'; ``` 其中,'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 3. 修改用户权限 我们可以使用以下命令修改某个用户的权限: - 授予权限: ``` GRANT SELECT, INSERT ON test_db.* TO 'test_user'@'localhost'; ``` 其中,'SELECT, INSERT'表示我们授予该用户可以执行SELECT和INSERT操作;'test_db.*'表示我们授予该用户可以操作 "test_db" 数据库中的所有表;'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 - 撤销权限: ``` REVOKE SELECT, INSERT ON test_db.* FROM 'test_user'@'localhost'; ``` 其中,'SELECT, INSERT'表示我们撤销该用户的SELECT和INSERT操作权限;'test_db.*'表示我们撤销该用户可以操作 "test_db" 数据库中的所有表的权限;'test_user'为用户名,'localhost'表示该用户只能从本地连接MySQL。 以上就是MySQL权限管理的一个实例,您可以根据自己的实际需求进行修改和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值