您的位置:首页 > 数据库 > MySQL

MySQL数据库用户授权管理

2016-06-12 16:32 681 查看
一、用户授权
1、注意事项:
- MySQL数据库服务器搭建好之后,放在独立的房间里或者是IDC机房,MySQL数据库服务默认只允许数据库管理员root在本地登录,要在其他客户端登录管理数据库则需要授权才可以。- 程序员(网站运行数据)编程使用数据库都是在客户端,需要授权。- 默认只有数据库管理员在数据库服务器本机登录才有授权权限2、授权库mysql,主要的几个表:
- user:记录用户的信息 host:客户端 user:授权用户名password:授权用户密码 *_priv:权限- db:记录授权用户对库的授权信息 //工作中删除test及表的完全权限记录(delete from mysql.db where user=“”) Host:客户端 Db:库名 user:用户名 *_priv:权限- tables_priv:记录授权用户对表的授权信息有对表的授权的时候才会有记录Host db user table_name grantor timestamp table_priv column_priv- columns_priv:记录授权用户对字段的授权信息有对字段的授权才会记录(grant select,update(name,sex) on studb.usertab tolucy;)3、授权命令:
格式:mysql>grant 权限列表 on 数据库名.表名 to 用户名@ //网络中所有主机可用该用户登录,无需密码
mysql>grant 权限列表 on 数据库名.表名to 用户名@“客户端地址”//只允许一台客户端用该用户名登录,无需密码 mysql>grant 权限列表 on 数据库名.表名to 用户名@“客户端地址” identified by “密码”//只允许一台客户端用该用户名登录,需要密码 mysql>grant 权限列表 on 数据库名.表名to 用户名@“客户端地址” identified by “密码” withgrant option//只允许一台客户端用该用户名登录,需要密码,该用户有给其他用户授权的权限1)权限列表:用户连接后对数据库有什么样的操作权限
- all:对指定的库拥有全部权限- select:只有查看指定库的权限- insert:只有在指定库的插入记录权限- update:updtae(字段1,字段2.......)更新权限,对某表某字段的更改权限- delete:- USAGE:对库和表没有任何权限,用户只能登录- 多个权限逗号,分隔:select,insert...(权限'Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','CreateView','Show view','Trigger' )2)数据库名:
- *.*:所有库- 数据名.*:某个库中所有表有权限- 数据库名.表名:某个库的某个表有权限3)用户名:授权时自定义,要有标识性,保存在mysql.user表里
4)客户端地址:
- @“%”或不设置:代表网络中所有主机- @“192.168.1.%”:该网段的所有主机- @“ip地址”:只允许在该ip地址的主机登录- @“主机名”:保证该主机名可以被解析 如:@”pc1.tarena.com” //不常用-@”%.tarena.com”:允许tarena.com区域所有主机登录保证可被解析 //不常用5)identified by “密码”:可选项,授权用户登录时使用的密码,自定义
6)with grant option :可选项,让授权用户有授权权限
示例:mysql>grant select on bbsdb.usertab to jim@“192.168.4.1” identifiedby “123” with grant option;
mysql>grant all on *.* to root@“192.168.4.205” identified by“123” with grant option; //授权数据库管理员root可以在192.168.4.205上登录数据库4、登录用户查看自己的权限:mysql>show grants;
数据库管理员查看授权用户的权限信息:mysql>show grants fortom@192.168.4.205查看授权用户有哪些:mysql>select user,host from mysql.user5、查看当前登录用户是谁:mysql>select user();
6、授权信息保存在数据库服务器中的mysql库中的表里
7、服务器端和客户端关闭防火墙和SELinux(disable)
客户端登录:#mysql -h数据库服务器IP -u授权用户名 -p密码8、授权权限:
a) 授权权限需对mysql库有全部权限b) 授权权限只能把自己所拥有的权限给别人(授自己有权限的库/表)c) 如:给开发部经理授权权限,他给部门程序员授权Grant all on webdb.*to webuser10@”%” identified by “123” with grant option
Grant all on mysql.*to webuser10@“%” identified by “123”
9、授权用户修改自己的登录密码
Set password=password(“新密码”);
10、管理员可重设用户的密码
Set password for 用户名@“客户端地址”=password(“新密码”);
二、撤销用户权限
1、对目标库/表有过授权才能撤销成功
2、有授权权限的用户在客户端登录也可以执行撤销权限
3、撤销命令:
格式:revoke 权限列表 on 数据库名(.表名) from 用户名@“客户端地址”
数据库名(.表名):这个位置要有过授权示例:revoke delet on *.* from root@“192.168.4.205”
revoke all on *.* from root@“192.168.4.205” //撤销的是权限,用户仍能登录,all是对库和表的操纵权限不包括授权权限 revoke grant option on *.* from root@“192.168.4.205”//撤销授权权限revoke撤销的是权限,不会删除授权用户信息(仍保存在mysql.user表里),仍能登录4、要彻底删除授权用户,则删除mysql.user表里该授权用户的记录:delete from mysql.user where user=“用户名”

本文出自 “IT技术学习” 博客,请务必保留此出处http://learningit.blog.51cto.com/9666723/1788317
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: