中请求确认是由被存储在mysql数据库中user、db、host、ta2bles priv和columns priv授权表中的权限内容来验证的。mysql的安全,权限系统是很灵活的,它允许以多种不同的方式设置用户权限:既可以使用标准的sql语句crant和revoke来修改授权表,也可以用update、in-sert等语句直接修改授权表。在mysql启动时和在权限修改生效时,服务器读一文些数据表内容。
4.mysql、系统的作用
mysql权限系统的主要功能是验证连接到一台mysql服务器主机的一个用户是否合法,并且赋予该用户在一个数据库表上读取、插入、更新、删除记录的权限。另外,还有是否允许匿名访问数据库,以及是否允许从外部文件批量向数据表中追加记录等操作的能力。
mysql提供以下权限:
1) select、insert、update和delete权限允许用户在一个数据库现有的表上实施读取、插入、更新、删除记录的操作。
2) index权限允许用户在数据表上建立或删除索引。
3) alter权限允许用户使用alter table命令来修改现有数据表的结构。
4) create和drop权限允许创建新的数据库和表,或删除现存的数据库和表。
注意:如果将mysql数据库的drop权限授予一个用户,该用户能删除存储了mysql系统权限的数据库!
5) grant权限允许用户把自己拥有的权限授予其它的用户。
6) file权限允许被授予该权限的用户都能读或写mysql服务器能读或写的任何文件。
7) reload权限允许用户使用reload命令通知mysql服务器再次读入授权表;使用refresh命令刷新所有表、打开和关闭日志记录文件。
8) shutdown权限允许用户使用shutdown命令关掉服务器。
9) process权限允许用户使用。
processlist命令显示在服务器内执行的进程的信息;使用kill命令杀死服务器进程。用户总是能显示或杀死自己的进程,但是,显示或杀死其它用户启动的进程需要process权限。
5.mysql权限更改后的生效
mysqld启动时将所有的授权表内容读入内存,所以任何权限都会在这时生效。
服务器启动后,修改的权限何时生效:
1)用grant、revoke或set password语句对授权表实行的修改会立即生效。
2)如果使用insert、update等语句手工修改授权表,权限不会立刻生效,而是在下一次启动服务器时生效。如果想使修改的权限立即生效,应该执行flush privileces语句或运行mysqladmin flush - privileges或mysqladmin reload告诉服务器重新装载授权表。
3)当服务器注意到授权表更改时,对已经存在的用户连接有以下影响:
表和列权限的修改,在用户的下一次请求时生效;
数据库权限的修改,在下一个执行use db -name命令时生效。
4)全局权限的修改和口令的修改,在下一次用户连接时生效。
6.小结
mysql作为被广泛采用的网络数据库,它具有先进但非标准的安全/权限机制,这就要求系统管理员在他的安全性规划方面不能完全遵循常规,但如果做好文件系统保护、口令保护和权限表的设置,一样可以使数据系统、数据处于安全的境地。另外,作为mysql管理员,要订阅mysql邮件列表,能及时地知道bug和补丁的下载升级。
参考文献:
【1】陈小辉,文佳,邓杰英.mysql数据库的权限及其安全缺陷【j】.计算机安全,2008,(2).
【2】朱洪江.mysql数据库的安全漏洞及防范方法【j】.黑龙江科技信息.2009.
【3】刘兆风,汤茂斌.mysql安全机制及应对措施探讨【n】.广州大学学报(自然科学版),2003.
上一页 [1] [2]