Chinaunix首页 | 论坛 | 博客
  • 博客访问: 703773
  • 博文数量: 147
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1725
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 10:36
文章分类

全部博文(147)

文章存档

2011年(1)

2010年(1)

2009年(35)

2008年(110)

我的朋友

分类: Mysql/postgreSQL

2008-11-30 16:57:09

mysql权限表:数据库mysql中三个表重要:user,db,host
查看他们的表结构:desc user/db/host
创建用户:
第一种方法(直接操作授权表):
insert into user(host,user,passwors)values('%','test',password('test'))
然后:flush privileges
修改密码:update user set password=password('123456')然后:flush privileges
删除用户:delete from user where user='test'

第二种方法(是用grant语句):
设置用户管理权限:grant 权限列表 [(字段列表)] on 数据库名.表名 to 用户名@域名或ip地址 [identified by '密码'] [with grant option]
eg:
1. 创建用户wuxiaoxiao,权限为在所有数据库上执行所有权限
grant all privileges on *.* to wuxiaoxiao@'%' identified by '870805'
2. 创建用户wuxiaoxiao,权限为在java数据库上,执行select的权限
grant select on java.* to wuxiaoxiao@'202.194.132.%' identified by '870805';
创建用户wuxiaoxiao,权限为在java数据库的customer表上,执行update字段name的权限
grant update (name) on java.customer to wuxiaoxiao@'%';
3.
grant all privileges on *.* to wuxiaoxiao@'localhost' identified by '870805';

查看权限:
show grants for user@host;
 eg:show grants for wuxiaoxiao@'localhost';
修改权限和创建用户语句一样


收回权限
revoke 权限列表[(字段列表)] on 数据库.表名 from 用户名@域名或ip地址
eg:revoke create,drop on java.* from wuxiaoxiao@'%';
revoke grant option on java.* from wuxiaoxiao@localhost;

mysql安全问题:
操作系统相关的安全问题:
1.严格控制操作系统的账号和权限
2.尽量避免以root权限运行mysql
3.防止dns欺骗,创建用户时,host可以指定域名,如果域名对应的ip地址被别人恶意的修改,则数据库就会出现隐患
数据库相关的安全问题:
1.删除匿名账号
 有些数据库安装完毕后会建立一个空账号,对test数据库具有所有的权限,要把该账号加密或者删除
2.设置安全密码:
3.只授予账号必须的权限
4.除root用户外,任何用户不能具有mysql库user表的存取权限
5.不要把FILE,PROCESS,SUPER授予管理员以外的用户
   file:将数据库的信息通过select ...into outfile写入到服务器上
        通过load data infile....命令写入数据库
  process:能够通过show processlist查询当前所有用户执行查询的明文文本
  super:能执行kill命令,终止其他用户进程

使用ssl(安全套接字层):
grant all privileges on *.* to wuxiaoxiao@'%' identified by '870805' require ssl;
该用户进行传输数据的时候就是用ssl

revoke命令的漏洞:
在一个数据库上多次赋予权限,权限会自动的合并,但是在多个数据库上的多次赋予权限,每个数据库上都会认为是单独的一组权限



 

 


阅读(1240) | 评论(0) | 转发(0) |
0

上一篇:适配器模式

下一篇:工厂模式(Factory)

给主人留下些什么吧!~~