北大青鸟|成都名流北大青鸟电脑培训学校,专业计算机软件开发培训,学士后课程专为大学生开设
北大青鸟|成都名流北大青鸟电脑培训学校,专业计算机软件开发培训,学士后课程专为大学生开设 网站地图 成都北大青鸟培训学校 北大青鸟培训 成都北大青鸟

首 页
新闻 青鸟 热点 大学生就业
学习 JAVA .NET 网站建设
学校 总部 学校地址 荣誉
招生 问答集 学费 课程
课程 学士后 java课程 .net课程
就业 就业学员 就业企业 职业规划
师资 高级讲师 就业专员
实训 学员作品 创业中心
高中生学什么 大学生就业
视频 青鸟视频 课程视频
成都北大青鸟名流培训学校介绍北大青鸟学士后课程成都北大青鸟项目实训成都北大青鸟培训中心学员就业成都北大青鸟培训中心在线咨询成都北大青鸟官网报名

全国免费电话:4007-028-222
在线咨询QQ:923597100
成都北大青鸟学生交流群①:94507684
当前位置: 主页 > 学习社区 > 数据库开发 >

成都北大青鸟浅析MySQL数据库授权原则

时间:2012-01-16 10:59来源:成都名流 作者:朱老师 点击:
MySQL数据库相信很多人都用过,MySQL数据库受到广大用户的青睐,但是可能有很多人对MySQL数据库授权不是很了解,接下来,本文就为大家解析MySQL数据库授权原则。

     MySQL数据库相信很多人都用过,MySQL数据库受到广大用户的青睐,但是可能有很多人对MySQL数据库授权不是很了解,接下来,本文就为大家解析MySQL数据库授权原则。
  服务器重新启动的情况
  当mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效。
   被服务器立即应用的情况
  用GRANT、REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到。
  直接修改授权表的情况
  如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。
  对现有客户连接的影响情况
  当服务器注意到授权表被改变了时,现存的客户连接有如下影响:
  表和列权限在客户的下一次请求时生效。
  数据库权限改变在下一个USE db_name命令生效。
  全局权限的改变和口令改变在下一次客户连接时生效。
  授权原则
  无论怎么小心都难免在给用户授权时留有漏洞,希望下面的内容能给你一些帮助,你一般应该遵守这些规则。
  只有root用户拥有授权表的改写权
  不要把授权表的改写权授予除root用户之外的其它用户(当然,如果你可以用另一个用户代替root用户进行管理,以增加安全性)。因为这样,用户可以通过改写授权表而推翻现有的权限。产生安全漏洞。
  一般情况下,你可能不会犯这个错误,但是在安装新的分发, 初始授权表之后。这个漏洞是存在的,如果你不了解这时授权表的内容你可能会犯错误。
  在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权表的mysql数据库和初始权限。在Windows上,运行分发中的Setup程序初始化数据目录和mysql数据库。假定服务器也在运行。
  当你第一次在机器上安装MySQL时,mysql数据库中的授权表是这样初始化的:
  你可以从本地主机(localhost)上以root连接而不指定口令。root用户拥有所有权限(包括管理权限)并可做任何事情。(顺便说明,MySQL超级用户与Unix超级用户有相同的名字,他们彼此毫无关系。)
  匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库。匿名用户可对数据库做任何事情,但无管理权限。
一般地,建议你删除匿名用户记录:
以下是代码片段:
mysql> DELETE FROM user WHERE User="";
  更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。
  另外要给root用户设置密码。
  关于用户、口令及主机的设置
  对所有MySQL用户使用口令。
  记住,如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:
以下是代码片段:
    shell> mysql -u root mysql
  mysql> UPDATE user SET Password=PASSWORD('new_password')
  -> WHERE user='root';

(编辑:成都北大青鸟名流)