mysql学习之权限管理图文代码实例
技术百科
黄舟
发布时间:2017-03-04
浏览: 次 数据库权限的意义:
为了保证数据库中的业务数据不被非授权的用户非法窃取,需要对数据库的访问者进行各种限制,而数据库安全性控制措施主要有这三种,第一种用户身份鉴别,手段可以是口令,磁卡,指纹等技术,只有拥有合法身份的人才可以进入数据库。第二种存取权限控制,不同角色,对数据库的存取权限是不同的,必须为每一个角色设置其访问的数据库对象、权限。第三种制定数据库管理的管理制度,制度最终约束人的行为,通过制定相应的规章制度,可以保证在合适的时间、由合适的人对数据进行合适的操作。
mysql对用户权限的检查分为两个阶段
1、是否可以与mysql服务器建立链接
2、是否具有某些操作权限(如:select update 等)
一、与mysql服务器建立链接
mysql服务器如何校验用户是否可以建立链接
1、验证你从哪来 host
2、你是谁 user
3、密码 password
链接mysql的方式:C:\Users\PC003>mysql -h192.168.6.223 -uroot -pjalja
参数解释:-h:从何处要建立链接
-u:user
-p:密码
mysql> select user,host,password from user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *CFAFE434FB0E5D64538901E668E1EACD077A54DF | | root | % | *CFAFE434FB0E5D64538901E668E1EACD077A54DF | +------+-----------+-------------------------------------------+
host=localhost表示可以使用默认主机进行链接(C:\Users\PC003>mysql -uroot -pjalja,C:\Users\PC003>mysql -hlocalhost -uroot -pjalja,C:\Users\PC003>mysql -h127.0.0.1 -uroot -pjalja)
host=%表示该服务器可以与它所在一个局域网(公网)内的所有主机建立链接,该方式在生产环境中不安全
host=192.168.6.224表示该服务器只能与192.168.6.224主机建立链接 C:\Users\PC003>mysql -h192.168.6.223 -uroot -pjalja
如何修改host:
mysql> update user set host='192.168.6.223' where user ='root'
mysql> flush privileges;刷新权限(因为修改后数据是在内存中每次操作用户权限相关操作都要进行刷新)
修改密码:
mysql> update user set password=password('111111') where user='root';
mysql> flush privileges;二、mysql如何进行权限检查
mysql中有一个mysql库该库下user表检查该用户是否存在,db表检查该用户对哪些库有哪些操作权限,tables_priv表检查该用户对那些表有哪些操作权限。
创建用户并授权:
grant [权限1,权限2] on *.* to user@'host' identfied by 'password';
常用权限:all,create,drop,insert,delete,update,select
例如:授予ls用户所有库所有表的所有权限并可以从该局域网该网段任何主机登陆。
mysql> grant all on *.* to 'ls'@'192.168.6.%' identified by '111111';
使用该用户登陆:C:\Users\PC003>mysql -h192.168.6.223 -uls -p111111;
查看ls用户具体有哪些权限:
mysql> select * from mysql.user where user='ls' \G;
*************************** 1. row ***************************
Host: 192.168.6.%
User: ls
Password: *FD571203974BA9AFE270FE62151AE967ECA5E0AA
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin:
authentication_string: NULL权限回收:收回ls的所有权限
mysql> revoke all on *.* from ls@'192.168.6.%';
授权某个库的权限:
mysql> grant all on blog.* to ls@'192.168.6.%';授予ls用户拥有blog数据库的所有权限。
这样ls用户在user表中没有权限,这时将进行db级别的权限检查
mysql> select * from mysql.db where user='ls' \G;
*************************** 1. row ***************************
Host: 192.168.6.%
Db: blog
User: ls
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Execute_priv: Y
Event_priv: Y
Trigger_priv: Y回收ls用户所有权限并赋予某各表权限:授予ls用户blog库中user表crud权限
mysql> revoke all on *.* from ls@'192.168.6.%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> grant insert,update,select,delete on blog.user to ls@'192.168.6.%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
这样ls用户在db级别中没有权限,这时将进行tables_priv级别的权限检查:
mysql> select * from mysql.tables_priv where user='ls' \G;
*************************** 1. row ***************************
Host: 192.168.6.%
Db: blog User: ls
Table_name: user
Grantor: root@localhost
Timestamp: 2017-02-09 14:35:38
Table_priv: Select,Insert,Update,DeleteColumn_priv:1 row in set (0.00 sec)
mysql权限控制流程:
注意:mysql的权限检查可以精确到某列数据。
以上就是 mysql学习之权限管理图文代码实例的内容,更多相关内容请关注PHP中文网(www.)!
# 是在
# 的人
# 相关内容
# 都要
# 该用户
# 有哪些
# 中有
# mysql
# 才可以
# 中文网
# 没有权限
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- 如何使用Golang管理模块版本_Golanggo
- Django密码修改后会话失效的解决方案
- Python与MongoDB NoSQL开发实战_
- php打包exe如何加密代码_防反编译保护方法【技
- php串口通信波特率怎么选_根据硬件手册设置正确波
- Python 中将 ISO 8601 时间戳转换为
- Win11怎么开启窗口对齐助手_Windows11
- Win11摄像头无法使用怎么办_Win11相机隐私
- Win11怎么关闭小组件_Win11禁用任务栏天气
- Win11怎么修复系统文件_使用sfc命令修复Wi
- Windows家庭版如何开启组策略(gpedit.
- PHP主流架构怎么部署到Docker_容器化流程【
- c++怎么使用std::tuple存储多元组数据_
- c++23 std::expected怎么用 c+
- Windows 11登录时提示“用户配置文件服务登
- 如何在 Go 同包不同文件中正确引用结构体
- php文件怎么变mp4保存_php输出视频流保存为
- 一文详解网站被黑客入侵挂马解决办法
- 如何使用Golang实现文件追加操作_向已有文件追
- 如何高效识别并拦截拼接式恶意域名 spam
- Win11怎么开启移动热点_Windows11共享
- Windows如何拦截腾讯视频广告_Windows
- c++的位运算怎么用 与、或、异或、移位操作详解【
- Win11怎么关闭搜索历史_Win11清除任务栏搜
- Windows怎样关闭开始菜单推荐广告_Windo
- mac怎么安装adb_MAC配置Android A
- mac怎么安装字体_MAC添加第三方字体与字体册管
- Win11截图快捷键是什么_Win11自带截图工具
- 如何使用正则表达式批量替换重复的 *- 模式为固定
- 如何使用正则表达式批量替换重复的星号-短横模式为固
- MySQL 中使用 IF 和 CASE 实现查询字
- Win11怎么关闭专注助手 Win11关闭免打扰模
- 如何在网页无标准表格标签时高效提取结构化数据
- Python函数接口文档化_自动化说明【指导】
- PHP cURL GET请求:正确设置认证与自定义
- 如何在 Go 中正确测试带 Cookie 的 HT
- Win10怎样卸载DockerDesktop_Wi
- 零基础学会Python自动化办公_高效处理Exce
- c++中如何使用虚函数实现多态_c++多态性实现原
- LINUX如何删除用户和用户组_Linux use
- 如何将文本文件中的竖排字符串转换为横排字符串
- 如何在Golang中处理通道发送接收错误_防止阻塞
- Win11怎么设置麦克风权限_允许应用访问Win1
- Linux如何使用grep搜索文件内容_Linux
- 如何在Golang中使用time处理时间_Gola
- Win11怎么关闭自动修复_跳过Win11开机自动
- Win11怎么设置环境变量_Win11配置Path
- Windows11怎样开启游戏模式_Windows
- 如何在Golang中编写异步函数测试_Golang
- Win11怎么设置桌面图标间距_Windows11

File_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin:
authentication_string: NULL
QQ客服