MySQL用户权限管理

MySQL用户权限管理

一、用户管理

创建用户

​ 格式:

create User ’UserName‘@’HostName‘ identified by ’PassWord‘;
UserName:要创建的用户名
HostName:指定用户在哪个主机上可以登录,如果是本地用户那为localhost
如果想让用户可以从任意远程主机登录,那可以使用统配符%
PassWord:该用户的密码,秘密可以为空
//1.本地主机登录
Create  User  ‘ZhangSan’@’localhost’  identified  by123456;
//2.从地址为192.168.1.10的主机上登录
Create  User  ‘ZhangSan’@’192.168.1.10’  identified  by123456;
//3.从任意远程主机上登录
Create  User  ‘ZhangSan’@’%’  identified  by123456;
//4.从任意远程主机登录,密码为空
Create  User  ‘ZhangSan’@’%’  identified  by  ‘’;
//5.从任意远程主机登录,密码为空
Create  User  ‘ZhangSan’@’%;
删除用户
Drop User ’username‘@’host‘;

二、用户权限管理

​ MySql数据库的权限层级分为:

​ 1.全局——可以管理整个MySql

​ 2.库——可以管理指定的数据库

​ 3.表——可以管理指定数据库的指定表

​ 4.字段——可以管理指定数据库的指定表的指定字段

MySQL对用户有赋权操作和收回权限 的操作。修改用户权限后需退出重连,才能生效

​ 赋予用户权限

​ 命令格式:grant 权限 on 数据库对象 to 用户

1.查看用户权限  show  grants;
2.查看用户具体权限的语句
select * from  mysql.user where user='root'\G
尾数参数G的作用:每个字段打印到单独的行,后面无需再有;
权限字段用途说明表
Select_priv确定用户是否可以通过SELECT命令选择数据
Insert_priv确定用户是否可以通过INSERT命令插入数据
Update_priv确定用户是否可以通过UPDATE命令修改现有数据
Delete_priv确定用户是否可以通过DELETE命令删除现有数据
Create_priv确定用户是否可以创建新的数据库和表
Drop_priv确定用户是否可以删除现有数据库和表
Reload_priv确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表
Shutdown_priv确定用户是否可以关闭MySQL服务器,将此权限提供给root账户之外的任何用户时,都应当非常谨慎
Process_priv确定用户是否可以通过SHOW
File_priv确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令
Grant_priv确定用户是否可以将已经授予给该用户自己的权限再授予其他用户,例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户
References_priv目前只是某些未来功能的占位符,现在没有作用
Index_priv确定用户是否可以创建和删除表索引
Alter_priv确定用户是否可以重命名和修改表结构
Show_db_priv确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库,可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因
Super_priv确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令
Create_tmp_table_priv确定用户是否可以创建临时表
Lock_tables_priv确定用户是否可以使用LOCK
Execute_priv确定用户是否可以执行存储过程,此权限只在MySQL 5.0及更高版本中有意义
Repl_slave_priv确定用户是否可以读取用于维护复制数据库环境的二进制日志文件,此用户位于主系统中,有利于主机和客户机之间的通信
Repl_client_priv确定用户是否可以确定复制从服务器和主服务器的位置
Create_view_priv确定用户是否可以创建视图,此权限只在MySQL 5.0及更高版本中有意义
Show_view_priv确定用户是否可以查看视图或了解视图如何执行,此权限只在MySQL 5.0及更高版本中有意义
Create_routine_priv确定用户是否可以更改或放弃存储过程和函数,此权限是在MySQL 5.0中引入的
Alter_routine_priv确定用户是否可以修改或删除存储函数及函数,此权限是在MySQL 5.0中引入的
Create_user_priv确定用户是否可以执行CREATE
Event_priv确定用户能否创建、修改和删除事件,这个权限是MySQL 5.1.6新增的
Trigger_priv确定用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的
Create_tablespace_priv创建表的空间
授权语句中的关键字说明表
权限权限级别权限说明
CREATE数据库、表或索引创建数据库、表或索引权限数据库或表
DROP数据库或表删除数据库或表的权限
GRANT OPTION数据库、表或保存的程序赋予权限选项
REFERENCES数据库或表
ALTER更改表,比如添加字段,索引等
DELETE删除数据权限
INDEX索引权限
INSERT插入权限
SELECT查询权限
UPDATE更新权限
CREATE VIEW视图创建视图的权限
SHOW VIEW视图查看视图的权限
ALTER ROUTINE存储过程更改存储过程的权限
CREATE ROUTINE存储过程创建存储过程的权限
EXECUTE存储过程执行存储过程的权限
FILE服务器主机上的文件访问文件访问权限
CREATE TEMPORARY TABLES服务器管理创建临时表的权限
LOCK TABLES服务器管理锁表权限
CREATE USER服务器管理创建用户的权限
PROCESS服务器管理查看进程权限
RELOAD服务器管理执行flush-hosts,flush-logs,flush-privileges, flush-status,flush-tables,flush-threads,refresh, reload等命令的权限
REPLICATION CLIENT服务器管理复制权限
REPLICATION SLAVE服务器管理复制权限
SHOW DATABASES服务器管理查看数据库权限
SHUTDOWN服务器管理关闭数据库权限
SUPER服务器管理执行kill线程权限
普通用户授权:只有对指定库指定表的增,删,改,查,权限。
*grant* *select* *on* *testdb.** *to ZhangSan@’%’*
*grant* *insert* *on* *testdb.** *to ZhangSan@’%’*
*grant* *update* *on* *testdb.** *to* *ZhangSan@’%’*
*grant* *delete* *on* *testdb.** *to ZhangSan@’%’*
**或是*
*grant* *select, insert, update, delete* *on* *testdb.** *to* *ZhangSan********@’%’*
数据库开发人员授权:创建表、索引、视图、存储过程、函数等权限 创建,修改,删除表结构的权限
*grant create on testdb.* to ZhangSan@‘192.168.0.%’*
*grant alter on testdb.* to ZhangSan@‘192.168.0.%’*
*grant drop on testdb.* to ZhangSan@‘192.168.0.%’*
*或是*
*grant* *create********,********alter********,* *drop* *on* *testdb.** *to* *ZhangSan********@’%’*
*操作 MySQL 外键权限:*
*grant* *references* *on* *testdb.** *to ZhangSan@‘192.168.0.%’;*
*操作 MySQL 临时表权限:*
*grant* *create* *temporary* *tables* *on* *testdb.* to* *ZhangSan@‘192.168.0.%’;*
*操作 MySQL 索引权限:*
*grant* *index* *on* *testdb.** *to* *ZhangSan@‘192.168.0.%’;*
*操作 MySQL 视图、查看视图源代码权限:*
*grant* *create* *view* *on* *testdb.** *to* *ZhangSan@‘192.168.0.%’;*
*grant* *show view* *on* *testdb.** *to* *ZhangSan@‘192.168.0.%’;*
*操作 MySQL 存储过程、函数权限:*
*grant create routine on testdb.* to ZhangSan@‘192.168.0.%’;*
*grant alter routine on testdb.* to ZhangSan@‘192.168.0.%’;*
*grant execute on testdb.* to ZhangSan@‘192.168.0.%’;*
普通DBA授权
*赋予ZhangSan在本地登录时对testdb库具有全部的权限*
grant all privileges on testdb to ZhangSan@‘localhost’
高级DBA授权
*赋予ZhangSan在本地登录时对MySql服务器上全部的库具有全部的权限*
*grant all on *.* to ZhangSan @ ‘localhost’*
*多层次授权*
*作用在整个 MySQL 服务器上:*
*grant select on* *.*** *to ZhangSan@localhost; – ZhangSan可以查询 MySQL 中所有数据库中的表。*
*grant all on *.* to ZhangSan@localhost; – ZhangSan 可以管理 MySQL 中的所有数据库*
*作用在单个数据库上:*
*grant select on testdb.* to ZhangSan@localhost; – ZhangSan 可以查询 testdb 中的表。*
*作用在单个数据表上:*
*grant select, insert, update, delete on testdb.orders to ZhangSan@localhost;*
*作用在表中的列上:*
*grant select(id, se, rank) on testdb.apache_log to ZhangSan@localhost;*
*作用在存储过程、函数上:*
*grant execute on procedure testdb.pr_add to ‘ZhangSan’@‘localhost’*
*grant execute on function testdb.fn_add to ‘ZhangSan’@‘localhost’*
l *收回用户权限*
*命令格式:revoke 权限 on 数据库对象 from 用户*
*例子:*
*grant* *all* *on *.** *to* *dba********@localhost;* *给dba用户所有操作权限*
*revoke* *all* *on* *.*** *from* *dba@localhost;* *收回dba用户的所有操作权限*
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值