注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

 
 
 

日志

 
 

CentOS下的MySQL配置与使用实战(三)  

2012-02-23 23:07:35|  分类: 数据库类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
主要是对用户权限的设置,怎么样设置用户权限是基本的,如何远程连接操作数据库,刚安装数据库时,只能在本地登录操作,管理员密码也是空的,主要是操作mysql这个数据库,首先看一下mysql下的user表:

// 查看数据库mysql中表user,4个字段的内容,

***************************创建一个新用户*****************************

mysql> insert into mysql.user(host,user,password)

    -> values ('192.168.0.%','test100',password('123456'));

// 新建一个名为test100的用户,可以从192.168.0.0中的任何主机连接数据库,密码为123456

//  细心的朋友可以看出,select_priv是N,而root用户为Y

mysql> flush privileges;   //  重载mysql授权表

***************************************************************

mysql> mysql -h 192.168.0.252 -u test100 -p  //远程登录你的数据库服务器IP,我的IP是192.168.0.252,当然你所以远程连接的IP也要在192.168.0.0这个段中,因为一开始新建里设置了192.168.0.%中登录

如果没有成功登录,发生错误的话,可能是防火墙开户了,你可以关闭防火墙或设置允许TCP端口3306通过

# service iptables stop   //关闭防火墙

# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT //允许TCP端口3306通过,如果不懂的话,可以去网上查一下防火墙的相关资料,也可以看一下我的一篇博文 

mysql> show databases;   //查看数据库,这时你会发现里面没有mysql这个数据库文件,可以看到test数据库,这是因为没有权限

mysql> update mysql.user set password=password('456123')

    -> where user='test100';   //修改test100用户的密码为456123

mysql> delete from mysql.user where user='test100';   //删除test100用户 

mysql> flush privileges;   //  重载mysql授权表   

******************开始权限设置***********************************

在这里就不讲得太细了,以实战为主,使用grant语句授权

mysql> grant all on *.* to test100@'%' identified by '456123';  //授权test100可以从任何主机连接到数据库服务器,并可以完全访问所有数据库

以下面这个表为实验:并新建一个test200的用户

mysql> insert into mysql.user(host,user,password)

    -> values ('192.168.0.0/20','test200',password('123456')); 

mysql> grant select on bbs.* to test200@'192.168.0.0/20' identified by '123456';   //设置test200用户,能从192.168.0.0/20中的任何主机连接到数据库服务器,可以读取数据库bbs的内容

mysql> grant update(password) on bbs.users to test200@'192.168.0.0/20' identified by '123456'; //在可以读取bbs数据库外,还可以修改users表中的password,只允许修改users表中的password字段

如果当中遇到什么错误,请重载mysql授权表

mysql> select user,host,password,select_priv from mysql.user where user='test200';  //查询数据库mysql中user表test200用户的相关信息
mysql> select user,host,select_priv,db from mysql.db where user='test200';//查询数据库mysql中db表test200用户的相关信息
//这里select_priv中的数据变为了“Y”,表是它可以查询数据库bbs,而不能其他操作,只能对数据bbs
mysql> select db,user,table_name,table_priv,column_priv from mysql.tables_priv;   
//查询数据库mysql中tables_priv表,mysql并没有给用户test200表级的权限,column_priv表是用来设置字段权限的,所有值是Update,因为一开始设置了test200可以修改users表中的password字段...
mysql> select db,user,table_name,column_name,column_priv from mysql.columns_priv;   //这样看就清楚了。。。。
 
 **********************开始撤权操作***********************
mysql> revoke update(password) on bbs.users from test200@'192.168.0.0/20';  //撤销test200用户对users表password字段的权限操作
这个就不多说了,想深入的可以自己去网上查找相关资料
***************************************************
权限设置主要是对数据库mysql中的tables_priv和columns_priv的设置
***************************************************
休息了,有点累,告诉你一个秘密,其实我是一个mysql菜鸟,努力学习吧,只要不放弃,迟早成老鸟,呵呵
  评论这张
 
阅读(268)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017